__new__ из object'а вызвался бы в любом случае. Это и есть создание экземпляра объекта. Просто в данном примере мы его переопределили и вызываем super() для выполнения кода из метода __new__ родителя.
В примере в __new__ передается cls. cls - это тип объекта, который необходимо создать.
То же самое можно сделать и так:
def __new__(cls):
if cls.instance is None:
cls.instance = object.__new__(cls)
return cls.instance
Или так:
class ClassA:
pass
instance = object.__new__(ClassA) # <ClassA object at 0x0....>