@Douglas_Gregor mentioned this when talking about what's disallowed for inout
parameter.
It feels somehow very familiar (it totally makes sense btw). Then I realized that you can mutate a variable inside a sync escaping closure iff you can pass the same variable through an inout
parameter of an async
closure.
There may be some overarching story about variable access here. Though I'll need to think about it a bit more.