¿Por qué la asignación de corte extendida es menos flexible que la asignación de corte regular?

De acuerdo con la documentación de Python sobrerebanadas extendidas:

Si tiene una secuencia mutable, como una lista o una matriz, puede asignar o eliminar un segmento extendido, pero existen algunas diferencias entre la asignación a los segmentos extendidos y regulares. La asignación a un segmento regular se puede usar para cambiar la longitud de la secuencia:

>>> a = range(3)
>>> a
[0, 1, 2]
>>> a[1:3] = [4, 5, 6]
>>> a
[0, 4, 5, 6]

Las rebanadas extendidas no son tan flexibles. Al asignar a un segmento extendido, la lista en el lado derecho de la declaración debe contener el mismo número de elementos que el segmento que está reemplazando:

>>> a = range(4)
>>> a
[0, 1, 2, 3]
>>> a[::2]
[0, 2]
>>> a[::2] = [0, -1]
>>> a
[0, 1, -1, 3]
>>> a[::2] = [0,1,2]
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ValueError: attempt to assign sequence of size 3 to extended slice of size 2

No entiendo por qué funciona el método de corte "ordinario" pero el método de corte "extendido" no funciona. ¿Qué diferencia a un segmento "ordinario" de un segmento "extendido", y por qué falla el método de segmento "extendido"?

Respuestas a la pregunta(1)

Su respuesta a la pregunta