echo $begrüßung;
Irgendwie habe ich das Gefühl, als ob eine starke Objektorientierung ziemlich zu Lasten der Performance geht.
Der Performanceverlust ist nicht zwangsläufig stark - wenn man es richtig implementiert. Grundsätzlich bekommt man aber Flexibilität nicht zum Nulltarif. Der Preis dafür ist Komplexität und jeder Code benötigt Laufzeit.
In deinem Fall sehen ich Bedarf für grundlegende Datenbankfunktionalität, die pro Verbindung einmal benötigt wird und Bedarf für spezialisierte Datenklassen, die mehrfach instantiiert werden können, aber alle mit der gleichen Datenbankinstanz reden, um ihre individuellen Daten zu bekommen.
Allerdings sollte das Ganze nicht unbedingt so ausarten, dass jedes Datenklassenobjekt sich selbst seine Daten per individueller Query abfragt. Das geht gehörig zu Lasten der Performance. Dann eher einen Query-Ausführer, der für jedes Element der Ergebnismenge ein Datenobjekt anlegt.
Schau dir auch mal beispielsweise beim Zend Framework die Datengeschichten an. Speziell Zend_Db und Zend_Db_Table sowie Zend_Db_Table_Row. Speziell letzteres ist nicht unbedingt ein Datenobjekt so wie du dir das vielleicht vorgestellt hast, aber vielleicht eine Alternative.
echo "$verabschiedung $name";