I recently found out that circular dependencies exist between some .Net assemblies from the following question and I'm looking for some explanation of why these exist:
https://stackoverflow.com/questions/43505621/circular-reference-in-net-assemblies
I've seen plenty of reasons to avoid circular references but are there any benefits? If not, then what is the historical reason of why these exist and why haven't they been cleaned up?