Thanks for explanation, I think your ideas is good. Would be interested to hear your opinion on the rules to enforce. Also take a look at this forum post on workflow determinism to get some further ideas.
direct call funcY()
Assume funcY is an activity function. Calling this in workflow code would typically manifest itself through non-deterministic errors or would trip the workflow deadlock detector. With Temporal both would imo not fail the workflow execution but block it, allowing users to fix the code and continue exec.