Да ничем он не круче. Просто глобальная переменная в объектной обертке. От него одни проблемы:
— тяжело подменить заглушкой (моком) при тестировании;
— глобальными становятся не только сам синглтон но и все то, что можно через него получить
— проблемы при разработке параллельных программ (но в php это обычно мало касается)
Почитайте по этому поводу у Misko Hevery, он гораздо лучше чем я пишет про это.
misko.hevery.com/2008/08/25/root-cause-of-singletons/
misko.hevery.com/2008/08/17/singletons-are-pathological-liars/
misko.hevery.com/2008/08/21/where-have-all-the-singletons-gone/
Заменить синглтоны и реестр (Registry) поможет инъекция зависимостей (Dependency Injection, DI), но это уже тема для другой беседы :)
misko.hevery.com/2009/01/14/when-to-use-dependency-injection/
Если коротко, то все зависимости должны предоставляться объекту, а не тянуться им самим. Есть также фреймворки помогающие в этом, например, Phemto и компонент в Symfony.