Acontece que os locais do terminal foram configurados de alguma forma errada. Meu .bashrc tinha um export LC_ALL=C .
> locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
...
LC_IDENTIFICATION="C"
LC_ALL=C
Depois de remover LC_ALL=C , obtenho isto:
> locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_GB.UTF-8
...
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=
Vim agora abre o mesmo arquivo com enconding=utf-8 e fileencondig=utf-8 e edição é normal.
Obrigado Murphy e Radovan por alguns ponteiros. Talvez alguém tenha uma explicação para esse problema.