Could you please give an example of what would break? Perhaps I'm being dense, but it seems a new C standard supporting this would still compile existing code just as C++ can.
struct S { ... };
typedef int S;
That's not valid in C++ (so would be a breaking change in C, if it were to adopt this).I don't really think changing this in C would break all that much code, but it's definitely not backwards compatible.