Die Applikation soll modular erweiterbar sein und Module sollen nicht auf die Konfigurationsdaten zugreifen können.
Für mich ist schon der erste zitierte Satz mit einem inneren Widerspruch belegt.
public static create(&$cfg){
Wenn Du etwas nicht öffentlich haben willst, warum publizierst Du dann genau das? Das ist für mich wie eine Zeitung zu drucken, diese zu verteilen und dabei nicht zu wollen, dass jemand den Leitartikel liest.
dass in der Variablen auch ein Passwort in Klartext enthalten ist.
Tatsächlich ist also nicht die angewandte Praxis, sondern die Philosophie Dein Problem.