Bei dem Singleton gehe ich davon aus, dass die eine Voraussetzung gegeben ist, die einen Singleton sinnvoll macht: es darf nur 1 Instanz geben.
Dass das oft genug nicht gegeben ist, habe ich ja bereits erwähnt. Und ich wollte nicht sagen, dass man bei einer solchen Implementierung Singleton "ruhigen Gewissens" verwenden kann. Aber die meisten Probleme (globale Zugreifbarkeit, woraus starke Bindung, schlechte Testbarkeit etc. resultieren) sind immernoch durch die Standardimplementierung bedingt.
Wie genau die Instanz weitergereicht wird habe ich nicht bestimmt und ich habe auch geschrieben, dass Dependency Injection weitere Möglichkeiten bieten würde. Dazu kann man auch zählen, dass das Instanziieren durch das Framework übernommen wird. Da ich aber die Beispiele nicht von konkreten Frameworks abhängig machen wollte, habe ich es an einem Beispiel ohne DJ-Framework gezeigt.
Also: jain. Letztendlich würdest du es wohl richtig machen, indem du einfach einen Schritt auslässt und direkt auf Singletons verzichtest.