Earlier quoted context omitted.
Well, fine, but Python2 had the inverse problem--you couldn't mutate top-level variables without awkward "global" statements.
Yes, and it's very uncommon that you need to do that. I learned Scheme years ago before I learned Python (in 1993, I think). At first I was dismayed by Python's lack of non-local assignment. However, in years of Python programming I can count the times I needed the ability on one hand. I haven't yet found a need for 'nonlocal'. Obviously it depends on programming style. In Coffeescript you don't have something akin t…
Might have to do with Python itself as well: because it's function-scoped and it tends to avoid higher-order function (in part due to the limitations of its anonymous functions), there are far less occasions write to lexical closures than in Scheme, Smalltalk or Ruby.