> For instance the only reason C++20 added designated initializers was for improving C compatibility.
That would be true if you ignore the fact that designated initializers are superb syntactic sugar that greatly contributes to fewer bugs and better readability.