Circular dependencies are going to exist. Especially if you turn on incompatible options by enabling everything everywhere. There's a reason why some options are off by default. The system isn't "smart" enough to detect you enabled an incompatible option two, three levels deep in the dependency chain that causes it to loop back. It'll detect it's looping by presenting you with an error; "circular dependency detected" and refuse to build, but it's not going to stop you from selecting those options that caused it to loop in the first place.