.NET BCLでは、以下の間に循環参照があります。
System.dllそしてSystem.Xml.dllSystem.dllそしてSystem.Configuration.dllSystem.Xml.dllそしてSystem.Configuration.dll
これが.NET Reflectorのスクリーンショットで、私が何を意味するかを示しています。

マイクロソフトがこれらのアセンブリを作成した方法は私には謎です。これを可能にするために特別なコンパイルプロセスが必要ですか?ここで何か面白いことが起こっていると思います。