Acabei de descobrir o motivo e foi uma coleção de circunstâncias:
Primeiro de tudo, eu não sei exatamente por que, mas sudo não estava pegando a variável de ambiente HOME corretamente e usava a do usuário regular, então ela lia o .vimrc de /home/user/.vimrc.
Para ver isso, eu publiquei:
user@hostname:~$ sudo bash
[sudo] password for user:
root@hostname:/home/user# echo $HOME
/home/user
Em segundo lugar, tenho a persistência de dobramento ativada no arquivo vimrc do meu usuário para armazenar a posição do cursor:
au BufWinLeave * mkview
au BufWinEnter * silent loadview
Isso faz com que toda vez que um arquivo seja editado, um arquivo de propriedades seja criado dentro da pasta $HOME/.vim/view .
No meu caso, parece que tentei editar o arquivo sem sudo pela primeira vez, então o arquivo dobrável foi criado como usuário regular:
user@hostname:~$ ll .vim/view/ | grep thunderbird.sh
-rw-rw-r-- 1 user user 2650 Aug 20 15:56 =+usr=+lib=+thunderbird=+thunderbird.sh=
Como a raiz usou /home/user como $HOME , o mesmo arquivo de dobragem foi (erroneamente) usado quando emitei sudo vim e, por algum motivo que ignoro, provavelmente relacionado a internals do vim, se o arquivo dobrável for não pertence ao usuário de edição, o arquivo editado é aberto no modo ReadOnly.
Então, percebi que, se eu removesse o arquivo /home/user/.vim/view/=+usr=+lib=+thunderbird=+thunderbird.sh= e depois tentasse editar usando sudo vim, , não tive nenhum problema.
Então, no final da história, para corrigir essa situação, eu apenas editei /etc/sudoers e adicionei esta linha:
Defaults always_set_home
Agora tudo funciona como esperado e posso usar sudo de forma confiável novamente.