In the .NET BCL there are circular references between:
System.dllandSystem.Xml.dllSystem.dllandSystem.Configuration.dllSystem.Xml.dllandSystem.Configuration.dll
Here's a screenshot from .NET Reflector that shows what I mean:

How Microsoft created these assemblies is a mystery to me. Is a special compilation process required to allow this? I imagine something interesting is going on here.