Back in 2012 I observed exactly the same thing. I actually managed to get a warning for this added to Clang, called -Wmissing-variable-declarations. When set, warnings are generated in case a non-static global variable is defined without an external declaration that precedes it.
I worked on this as part of FreeBSD, which is why their base system is nowadays built with that flag enabled.