"for backwards compatibility and efficiency."
And security issues.
Backwards compatibility is important - but not when it creates more issues than it resolves. Efficiency too, We have insecure OSes, for example, because someone decided flat, overlapping address spaces for code and data were more "efficient" . so efficient ROP works perfectly.
When people become so afraid of changes they feel the need to keep alive on outdated and risky designs, the only outcome will be huge security breaches. If in 1970 that was not a big issue, today it is, and even C/C++ need to change accordingly. Hundreds of pages about how write proper code won't be enough.
It's just like believing more trained users will cause less mortal incidents, so you don't need safer devices by design.