Использование реестра через wrapper без синглтона в PHP?
Не использовал бы, т.к. глобальную переменную $___REGISTER можно случайно или намеренно изменить, а потом искать, где «собака порылась».
Если очень хочется использовать stdClass в качестве контейнера в реестре, то я бы предложил поступить так:
class Registry extends stdClass {
    private static $instance;

    private function __construct () {}
    private function __clone () {}

    public static function me ()
    {
        if (self::$instance === null)
            self::$instance = new self;
        return self::$instance;
    }
}

# Использовать так
Registry::me()->config = new stdClass;
Registry::me()->config->host = 'habrahabr.ru';
Registry::me()->config->admin = 'admin@habrahabr.ru';
Registry::me()->config->name = 'Хабрахабр';

Если вы планируете тестировать собственный код (в смысле автоматизированно, например, с помощью PHPUnit), не используйте синглтоны, не говоря уже о глобальных переменных (которые вы привели в пример). Почитайте что такое тестируемый дизайн и принцип Dependency Injection. Если вы читаете по-английски, рекомендую вот эту ссылку misko.hevery.com/code-reviewers-guide/ и презентацию
www.procata.com/talks/phptek-may2007-dependency.pdf
Вот здесь есть описание компонентов Symfony в переводе на русский: madbee.ukr.su/solenko/dependency-injection/