>>66
>一般的なプログラマが名前空間に期待するものは型を意味的に分類する入れ物なんだから。

そもそもの出発点からして異なっていたみたいだね
自分は「名前空間とは型を(意味的にではなく)構造的に分類する入れ物」なんだと考える
実際、Rubyでは名前空間をモジュール(module)と呼ぶし、
MLという関数型言語にいたってはストラクチャ(structure)と。まさに構造と呼んでいる
逆に、型を意味的に分類するのは部分型、つまりオブジェクト指向におけるクラス継承になる

集合論的に言えば、型とは集合であり、型の分類とは部分集合に分けることになる
ここで、もし分けた部分集合間に交わりがあれば(クラスの)複数継承になり、
交わりが無い直和分割であれば単一継承になる


>"Exception"なんてただのベースクラスの名前じゃないの。

ここも解釈が異なっているなあ
自分は、「"Exception" とは例外という概念を表す象徴的な記号(=アイコン)」だと考える
だからクラス名になるし、名前空間(=モジュール)や変数の命名にも使われる

>各階層ごとに例外クラスを定義したいというごくありきたりのシナリオにも対応できない。

階層化した名前空間ごとに例外に関する名前空間を設ければいいだけの話だよ
たとえば名前空間 M を階層化して M::M1、M::M2 と設計したのであれば、
M::M1::Exception、M::M2::Exception になる
こんな単純な話なのに、ナゼに「対応できない」と断言できてしまうのか不思議だ....