Eu finalmente resolvi o problema.
Eu tinha outro colorshemefile.vim em ~ / .vim / plugin / .
Então, movi-o para ~ / .vim / colors / e minha condicional com if &t_Co >= 256 || has("gui_running")
começou a funcionar como deveria funcionar…
Isso provavelmente acontece porque os plugins são carregados após as cores. E os temas têm as mesmas extensões de arquivo (.vim) que os plugins para que o vim não faça diferença entre eles ... Então, se houver alguma cor no diretório ~ / .vim / plugin / , eles terão uma "prioridade"