C++ had this forever (I assume), but for C this would be a breaking change which we try very hard to avoid.
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.