There is no backwards compatibility here to speak of: C++ modules are a new feature introduced by the C++20 standard. There was absolutely no reason to make a mess out of them.
Maybe we need to interview a C++ compiler engineer, for microsoft, GCC, clang, etc, because C++ is a large language that carries its compilation model from C, and I don't think making modules happen, or implementing them, is a trivial task.
I don't think they intended to make a mess, I think that C++ compilers are just massive things with massive codebases, and several different companies who have to agree on one language.