DSL example shows that pure flow control logic resides in the workflow body

Have a question here I find a lot of flow control logic is not wrapped in any activity nor in any local activity.
You just put the raw code in the workflow instead let temporal wrapping for this.
Is there a recommended pattern that I should use to decide whether the code will be safe in temporal workflow directly instead of wrapping everything in the activity? The replay feature makes me feel a little awkward to code complex flow control logic in the definition code.

You can find workflow implementation constraints here.

The used DSL defines control-flow logic which can be parsed in workflow code (could be a separate library instead). The parsing code is deterministic and the DSL never changes/updates after its parsed in the sample.