O que acontece quando você tenta excluir um elemento da lista enquanto itera sobre ele

Estou iterando uma lista da seguinte maneira:

some_list = [1, 2, 3, 4]
another_list = [1, 2, 3, 4]

for idx, item in enumerate(some_list):
    del some_list[idx]

for item in another_list:
    another_list.remove(item)

Quando imprimo o conteúdo das listas

>>> some_list
[2, 4]
>>> another_list
[2, 4]

Estou ciente de que o Python não suporta a modificação de umlist enquanto itera sobre ele e o caminho certo é iterar sobre a cópia da lista (por isso, não faça voto negativo). Mas quero saber o que exatamente acontece nos bastidores, ou seja, por que a saída do snippet acima[2, 4]?

questionAnswers(2)

yourAnswerToTheQuestion