¿Qué puede hacer __init__` que no pueda hacer __new__`?

En Python__new__ se usa para inicializar tipos inmutables y__init__ típicamente inicializa tipos mutables. Si__init__ fueron eliminados del idioma, ¿qué ya no se podía hacer (fácilmente)?

Por ejemplo,

class A:

    def __init__(self, *, x, **kwargs):
        super().__init__(**kwargs)
        self.x = x


class B(A):

    def __init__(self, y=2, **kwargs):
        super().__init__(**kwargs)
        self.y = y

Podría reescribirse usando__new__ Me gusta esto:

class A_N:

    def __new__(cls, *, x, **kwargs):
        obj = super().__new__(cls, **kwargs)
        obj.x = x
        return obj


class B_N(A_N):

    def __new__(cls, y=2, **kwargs):
        obj = super().__new__(cls, **kwargs)
        obj.y = y
        return obj

Aclaración sobre el alcance de la pregunta: no se trata de cómo__init__ y__new__ se utilizan o cuál es la diferencia entre ellos. Esta es una pregunta sobre qué pasaría si__init__ fueron eliminados del idioma. ¿Se rompería algo? ¿Se volvería algo mucho más difícil o imposible de hacer?

Respuestas a la pregunta(3)

Su respuesta a la pregunta