コストがかかることやリスクのある方法を実行するときは、できるだけ手間がかかるようにするべきだと思う。
対してコストが少なく済んだりリスクが軽減できる方法は、より手間のかからないやり方で提供されるべき。

プログラムを書くための言語について考えてみると、まずスコープの解決。
デフォルトでレキシカルスコープであるべき。Perlはダメ。少なくともPerl 5はダメ。
JavaScriptも危うい。コーディングに気をつければ回避できる。
Pythonなんかはかなり安全なスコープになっている。
Rubyも惜しいけどclass/moduleで親スコープかれ切り離されてしまう。一貫性に欠ける。現状でRubyの最もダサいところのひとつだと思う

スコープに関連して外部ファイルからのソースコードの読み込み (+ コンパイル) を行う際、カレント・スコープ上に展開される識別子を限定できたらよい。
Rubyはダメ。すべて読み込まれてしまう。Perlはデフォルトですべてexportする挙動なのがちょっといけていないけどimportするものを明示するようにすれば解決するのでよし。
PythonHaskellは比較的安全で、qualifyもできる。
CommonJSでの定義は、さすがに先行実装がたくさんある中でつくられたので悪くないとおもう。ライブラリ (ファイル) が明示的にexportしたオブジェクトを、利用するスコープにおいて変数に代入するというのはマジカルじゃない (勝手にスコープに識別子が追加される?) ので素敵。

(ねむいのでやめる)