In .NET BCL ci sono riferimenti circolari tra:
System.dll
eSystem.Xml.dll
System.dll
eSystem.Configuration.dll
System.Xml.dll
eSystem.Configuration.dll
Ecco uno screenshot di .NET Reflector che mostra cosa intendo:
Il modo in cui Microsoft ha creato questi assembly è un mistero per me. È necessario un processo di compilazione speciale per consentirlo? Immagino che qui stia succedendo qualcosa di interessante.