C'est très courant d'avoir tous les objets d'un framework qui héritent d'un superobjet.
C'est le cas en .Net, Java, et en C++ dans Qt.
Mais ceci sert à définir une interface commune, dans java et dotnet on retrouve notamment :
- toString(), equals(Object), hashCode
- Dans Qt, toute la mécanique de signaux et les relations parent-enfants passent par là.
Ceci dit, ce ne sont clairement pas des classes vides contrairement à ton exemple. Ce qui est pas compréhensible ici, c'est d'avoir un héritage qui ne définit rien. On ne peut même pas dire que c'est pour gagner en typage étant donné que le typage est limite une blague en PHP.
Bref, si tu veux apprendre la POO, utilise ce que tu veux mais pas PHP. Quant à cette pratique dans ton exemple, à mon avis elle rime à rien.