Hot take from me that I’m not sure even I agree with:
In an async function, asynchrony should be the default expectation — no explicit `await`! suspension point could occur anywhere! — but non-local state mutations must occur inside state change transaction blocks (something like `atomic { … }`) inside of which async calls are illegal.