>>268
>Cが最初にコンパイルされて、Dを取り込む
>Bはその後にコンパイルされるが、Dは既に取り込んであるので
>取り込まれない。その結果、CからはDがみえるが
>Bからはみえないと。

ちょっと違うな。Dに独立した名前空間を与えていないから、
最初にrequire したときに、Cと同じ名前空間が
与えられる。だから、別の名前空間を持つBからは、
そのままでは読み出せない、つーこと。