I’m not sure that this thread is going anywhere productive:
- The “why” of this is that lexical scoping is a commonplace choice that is widely adopted and widely understood across many programming languages. Yes, other choices are possible, but Julia adopting a conventional choice is not mysterious.
- Julia’s basic scoping semantics are not going to change at this point: PSA: Julia is not at that stage of development anymore — you’re free to go off and implement your own programming language, but this is not the forum for it.