¿Qué sucede cuando intentas eliminar un elemento de la lista mientras lo iteras?

Estoy iterando una lista de la siguiente manera:

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)

Cuando imprimo el contenido de las listas

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

Soy consciente de que Python no admite la modificación de unlist mientras itera sobre él y la forma correcta es iterar sobre la copia de la lista (así que por favor no desestimes). Pero quiero saber qué sucede exactamente detrás de escena, es decir, por qué la salida del fragmento anterior[2, 4]?

Respuestas a la pregunta(2)

Su respuesta a la pregunta