Hi,
The rationale is that it is the role of the outside feature to initialize its local variables; but on the other hand it must be able to delegate some computation to inline agents. If you forbid side effects, how would the inline agent be able to communicate with its outside feature?
I try and look beyond mere sequential programs (SCOOP is always lurking somewhere). Assigning to a variable is not thread-safe, but side effects are safe if SCOOP locking rules are respected. But that's a future story (not before curtiss or even beyond) ;-)
I'm not even sure I should allow post-assignment to outside locals (see TEST_CLOSURE02). I allow it because the inline agent has not yet been called (but that is not checked by the compiler).
The line is hard to draw.
Cheers,
Cyril ADRIAN (from office)
To any NSA and FBI agents reading my email: please consider whether defending the US Constitution against all enemies, foreign or domestic, requires you to follow Snowden's example.