Como Stéphane Chazelas apontou usando a ajuda do vim com :h :m
, ele afirma o seguinte:
:[range]m[ove] {address} *:m* *:mo* *:move* *E134*
Move the lines given by [range] to below the line
given by {address}.
Portanto, ao mover a linha 1 abaixo da linha 3, o resultado é o indicado na pergunta. Mas se alguém quiser mover a linha 3 para a primeira linha, ela deve ser movida abaixo da linha 0