Depois de comparar seu .vimrc
com o meu, parece que a principal diferença é que todos os meus comandos de função terminam com um estrondo assim:
function! ExtPrefFunction()
" Preferences here
endfunction
autocmd Filetype ext call ExtPrefFunction()
Honestamente, não sei por que eles são assim, mas meu trabalho. Além disso, você faz isso:
if &filetype == "ext"
" Preferences here
endif
... mas isso só é registrado quando você abre o arquivo pela primeira vez para edição, não a qualquer momento em que o indicador do tipo de arquivo é alterado.