O Vim detectará o formato de arquivo original (entre aqueles configurados em 'fileformats' ) e escreverá com o mesmo. A única maneira de o Vim mudar (por exemplo, do Unix para o Windows) é através de um :setlocal fileformat=dos explícito. É improvável que você tenha isso em sua configuração; :verbose setl ff? poderia te dizer.
Eu não ficaria muito preocupado com o Git diff ifself (desde que todas as linhas pareçam alteradas, então você realmente tem um switch de line endings), mas sim o que é comprometido está tudo bem.
Observe que com a configuração do Git autocrlf = true , o Git converterá novas linhas para o padrão do sistema ao fazer o check-out de arquivos, e para novas linhas do LF ao confirmar. Então, tudo pode ficar bem, somente a saída do diff do Git está confundindo você.