В .NET BCL есть круглые ссылки между:
-
System.dllиSystem.Xml.dll -
System.dllиSystem.Configuration.dll -
System.Xml.dllиSystem.Configuration.dll
Вот скриншот из .NET Reflector, который показывает, что я имею в виду:

Как Microsoft создала эти сборки, для меня загадка. Требуется ли для этого специальный процесс компиляции? Я предполагаю, что здесь происходит что-то интересное.