Por que um elemento de propagação não é adequado para copiar matrizes multidimensionais?

Partida mdn:Sintaxe de propagação

Nota: Normalmente, os operadores de propagação no ES2015 avançam um nível ao copiar uma matriz. Portanto, eles não são adequados para copiar matrizes multidimensionais. É o mesmo caso com a sintaxe Object.assign () e Object spread. Veja o exemplo abaixo para entender melhor.

var a = [[1], [2], [3]];
var b = [...a];
b.shift().shift(); // 1
// Now array b is: [[2], [3]]

Qual é o objetivo da afirmação acima? O exemplo de código acima funciona da mesma forma como se você tivesse copiado a matriz de a para b usando o método .slice (). Tentei adicionar outra dimensão à matriz aqui:https://repl.it/HKOq/2 e as coisas ainda funcionavam como esperado.

Então, por que a sintaxe de propagação não é adequada para copiar matrizes multidimensionais?

Eu apreciaria qualquer ajuda.

EDITAR:

Ler as respostas de estus e vol7ron me ajudou a entender as coisas. Basicamente, como estus aponta tecnicamente, existem apenas matrizes dentro de matrizes, em vez de matrizes multidimensionais.

E, como o vol7ron explica, apenas o primeiro nível da matriz é copiado para que os objetos na memória permaneçam os mesmos para quaisquer outros elementos aninhados.

Eu também estava errado ao suspeitar que o uso da sintaxe de propagação deveria se comportar de maneira diferente do operador de fatia

questionAnswers(4)

yourAnswerToTheQuestion