I am not sure if this is intended behaviour or if this is a bug but.....
Setting a field's bind::esri:fieldType to null (The field isn't persisted in the database. This works great)
Entering a calculation for that same field - let's say something like concat('test'). This should fire regardless of whether this record is a newly captured record or a record retrieved from the survey's inbox. (right ???)
In this scenario when a record is retrieved from the survey's Inbox then the calculation never fires for this field unless you click on the "recalculate" icon:
In my opinion the non-persisted fields should always be recalculated automatically when a record is opened from the Inbox since they dont currently have a value in the database... I might be mistaken but I think in past versions of Survey123 this was how it used to work?