Cita: Creeria que PHP podria tener en cuenta que estoy devolviendo un objeto y no sobre-escribir mi devolucion pero seguramente seria "transgiversar" el objetivo de un constructor... algo asi como lo que tu dices.
Precisamente para eso es el polimorfismo y el principio de
sustitución de liskov: para que puedas usar los objetos de forma intercambiable.