La comparación de colecciones es reflexiva, pero no provoca cortocircuitos. ¿Por qué?

En python, las colecciones integradas comparan elementos con la suposición explícita de que son reflexivos:

Al hacer cumplir la reflexividad de los elementos,la comparación de colecciones supone que para un elemento de colección x, x == x siempre es cierto. En base a esa suposición, la identidad del elemento se compara primero, y la comparación de elementos se realiza solo para elementos distintos.

Lógicamente, esto significa que para cualquier listaL, L == L debe serTrue. Dado esto, ¿por qué la implementación no verifica la identidad para cortocircuitar la evaluación?

In [1]: x = list(range(10000000))
In [2]: y = list(range(int(len(x)) // 10))
In [3]: z = [1]

# evaluation time likes O(N)
In [4]: %timeit x == x
10 loops, best of 3: 21.8 ms per loop
In [5]: %timeit y == y
100 loops, best of 3: 2.2 ms per loop
In [6]: %timeit z == z
10000000 loops, best of 3: 36.4 ns per loop

Claramente, las clases secundarias podrían elegir hacer una verificación de identidad, y claramente una verificación de identidad agregaría una sobrecarga muy pequeña a cada comparación.

¿Se tomó una decisión histórica explícitamente?no hacer tal verificación en las secuencias integradas para evitar este gasto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta