Разница в скорости практически отсутствует.
Что касается качества кода, Singletons довольно ужасны, и я лично выбрал бы обе формы, , особенно в многопоточной среде.Однако при условии, что для этого уже слишком поздно.
Дело в том, что если вы передадите указатель на объект, почему бы просто не сделать этот объект глобальным во-первых?И если вы, это должно быть строго напечатано.И потом, вы просто ... оборачиваете метод-член в статический метод?Зачем беспокоиться?Любой, у кого есть указатель на класс, может просто вызвать метод.Это просто безумие.
Редактировать: Если вы застряли с существующим дизайном, то вторая версия на определенно лучше первой и не медленнее.Даже если у вас есть существующий код, который зависит от Singleton, лучше реорганизовать то, что вы можете, чтобы не зависеть от него.