別にクロージャ実現するのにJavaScriptのウンコな関数スコープである必然性も必要性も
無いし、外のスコープの変数を参照できるのはJavaScriptに限らず多くの言語が持つ機能
だし、他方で参照解決できなかったらいきなり大域変数作るなんてメリット何も無いし。

この辺り失敗だった事は後付use strictとletで明らか。
JavaScriptだって欠陥混じりの言語としてスタートして改良を必要としながら変化して
きたことは他の言語と全く変わらん。

仕事でもJavaScriptはそれなりに書くけどうわぁここは型をつけてIDEに仕事させたい
とか成果物ごとにモジュール化の書き方が異なって気持ちが悪いとかクロージャ書く度に
functionfuncitonfunctionfunctionfunction文字数多いよとかクロージャ以前に文字列の
式展開とかヒアドキュメントとか無いの面倒でしょHTML弄るときは特にとか不満は他言語
と同程度に普通に感じるかな。
だから改善にも期待するし、他方で合意形成やブラウザ対応の遅さにもげんなりする。