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.
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.
There are many non-trivial obstacles.