Singleton de cacao e instancias compartidas

¿Por qué Apple no tiene sus clases como singleton puro, por ejemplo, a pesar de que la clase UIApplication le da acceso al singleton UIApplication, como:

UIApplication *sharedApplication = [UIApplication sharedApplication];

Nada le impide crear una instancia explícita de una instancia de UIApplication, como:

UIApplication *newApplication = [[UIApplication alloc] init];

El resultado, sin embargo, es una excepción en tiempo de ejecución. La excepción establece claramente que solo una instancia de la clase UIApplication puede estar activa a la vez.

Entonces, ¿por qué no tener singleton puro devolviendo la misma instancia en el inicializador predeterminado?

Estoy haciendo esta pregunta para tener claridad, al crear singleton en mi proyecto, para seguir qué camino es mejor.

Respuestas a la pregunta(2)

Su respuesta a la pregunta