yo he estado estudiando un poco la POO (con JAVA) y por lo que he leído, el uso de métodos y variables estáticas es para usarlo como variables globales en un proyecto, las otras definiciones es como la menciona Santiago, para usarlas sin tener que crear un objeto (métodos huérfanos).
Supongo que habrán creado esta forma de usar métodos, para mantener una cierta compatibilidad hacia atrás (y programar sin las reglas de la POO)
ahora, después de leer todos esos conceptos, me hace mirar con otra perspectiva la forma en que ccs usa el static, forma un poco rara por cierto, una variable global que no es visible globalmente