C doesn't have namespaces, so all global symbols are in the same one and the fewer symbols you make global the less likely you'll have a random collision.
Also, it gives the compiler a bit more leeway in optimizing static functions, since by definition nothing outside the current scope can call it. This makes it more likely to inline functions since a non-inlined copy won't have to be emitted, and (in theory, not practice) also allows the compiler to automatically use non-standard calling conventions.