Clearly the lack of zeroing in C was a trade-off at the time. Just like UB on signed overflow. And now people seem to consider them "obvious correct designs".
"Improperly using a variable before it is initialized" is a very common class of bug, and an easy programming error to make. Zero-initializing everything does not solve it! It just converts the bugs from ones where random stack frame trash is used in lieu of the proper value into ones where zeroes are used. If you wanted a zero value, it's fine, but quite possibly you wanted something else instead and missed it because of complex initialization logic or something.
What I want is a compiler that slaps me when I forget to initialize a proper value, not one that quietly picks a magic value it thinks I might have meant.
It's just that "all values are defined to be zero-initialized, and you can use them as such" is a horrible decision. It means that you cannot even get best effort warnings for lack of initialization, because as far as the compiler knows you might have meant to use the zero value.
When I make a logic error the absolute ideal situation is that the compiler rejects the program. The higher the frequency of that result the better.
I believed the claim was about whether a compiler would initialize memory to zero. Whatever I said would be done by the compiler.
UB plus a memory access sanitizer automates the practice that you described.
And remains so. When number crunching it is often beneficial to be able to explicitly opt out of initialization for performance reasons.