Los métodos estáticos tiene un fin y no son una solución pensada en objetos, al hacer un método estatico estas utilizando solo ese metodo como una función más y no como una "entidad" que servira para comunicarse con otras entidades, si lo vemos como tu lo estas mirando estas desperdiciando el poder de la orientación a objetos y en ese caso la programación estructurada y en funciones es lo que tu necesitas, los objetos son más que simples repositorios de funciones, es programar de una manera distinta, es pensar distinto, a parte en teoría los atributos estáticos son así como digamos una variable global dentro de la clase y que compartirían todos las instancias de dicho tipo de objeto.
Ejemplo:
Código PHP:
class Persona{
private static $_nombre = '';
public static function setNombre($n){
self::$_nombre = $n;
}
}
Ahora puedes hacer esto y es totalmente valido.
Código PHP:
Persona::setNombre('Oscar');
y Si vuelvo a hacer esto?
Código PHP:
Persona::setNombre('Juan');
Siempre vas a trabajar sobre la misma variable y dejas a un lado la importancia de la creación de instancias y envio de mensajes entre objetos.
No debes de ver las clases como repositorios de funciones.