Thanks for your comment. I see where you’re coming from and thanks for raising this. This is a deliberate design choice in the PEP, and I want to be clear about why we made it this way.
The -X lazy_imports flag both for enable and disable is an advanced feature for users who explicitly choose to disable lazy imports and accept the consequences (see also my previous comment regarding the flag). If a library relies on lazy imports for correctness (including circular type references), users who enable the disable flag own that compatibility issue: this is the expected and documented behavior.
I understand your point about circular references. I recognize that options may vary but our stance is still that circular imports remain a code smell and poor design practice. The PEP doesn’t encourage them: we still recommend refactoring to avoid them. However, if library authors choose to use lazy imports to work around circular references (particularly for typing), we don’t prevent it. The trade-off is that this makes life slightly harder for users who want to globally disable lazy imports. But that’s acceptable: disabling is an advanced feature that requires thoughtful use of the filter mechanism anyway. Users operating at that level can handle the additional complexity of excluding specific modules.
We’ve extensively researched what minimal set of controls serves real community needs. Many users need both the enabled and disabled modes for their specific use cases. These are advanced features designed to work with the filter mechanism, giving different users the flexibility they need. We believe this is a strength of the design and we want to keep it.
We appreciate you all thinking through these implications carefully. Please trust us: we’ve explored the design space extensively with input from multiple user bases and organizations, and we’re confident the current approach (explicit syntax, optional global modes, and filtering) strikes the right balance for real-world needs. The trade-offs are acceptable, and we’re moving forward with this design. Thanks for your understanding.