A comparação da coleção é reflexiva, mas não provoca curto-circuito. Por quê?

Em python, as coleções incorporadas comparam elementos com a suposição explícita de que eles são reflexivos:

Ao reforçar a reflexividade dos elementos,a comparação de coleções assume que, para um elemento de coleção x, x == x é sempre verdadeiro. Com base nessa premissa, a identidade do elemento é comparada primeiro e a comparação de elementos é realizada apenas para elementos distintos.

Logicamente, isso significa que, para qualquer listaL, L == L devemos serTrue. Diante disso, por que a implementação não verifica a identidade para causar um curto-circuito na avaliação?

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, as classes filhas poderiam optar por fazer uma verificação de identidade, e claramente uma verificação de identidade acrescentaria uma sobrecarga muito pequena a cada comparação.

Foi uma decisão histórica explicitamente tomadanão fazer tal verificação nas seqüências incorporadas para evitar essa despesa?

questionAnswers(1)

yourAnswerToTheQuestion