I really hate this attitude. Static variable initialization is not "detailed minutiae of the standard" (nor is operator precedence--I know you didn't mention that but others in the discussion have). If you don't know those then you don't know C! It doesn't make your code harder to read if you understand the language. And if you don't understand the language, then why, oh why are you trying to read or write it?
It's like encouraging people to speak in baby talk because the people listening shouldn't have to understand all the detailed minutiae of the English language.
Not many people can have an almost complete and thorough understanding on how each compiler/linker/platform will behave on the various C standards, to suggest such a thing is silly and to enforce it is borderline insanity.
And if you don't understand the language, then why, oh why are you trying to read or write it?
a) To get things done.
b) To attempt to understand the language.
Not everyone can learn the complete work of C standards and quirks just by reading, some need to read and write it.
You haven't given any reason why implicit initialization of variables is better than explicit. Explicit initialization is already required for any initial value except 0 and it conveys intention. It's not onerous -- it's 3 extra characters, and it makes it clear that you meant it to be zero (and you didn't just forget to initialize it).
I think the case for omitting "= 0" is weak at best. If you encourage this style some novice/intermediate programmer could do the same thing for a stack variable, which will bite him/her. Given all these costs/downsides, what is the benefit of not typing those three characters?
Anyone who writes ambiguous code, such as not initializing variables and then incrementing them, deserves to have nobody else understand it. Such a person should work alone.
It's like encouraging people to speak in baby talk because the people listening shouldn't have to understand all the detailed minutiae of the English language.