Se você fosse criar um alias para o vim para especificar a localização do .vimrc da seguinte forma:
alias vim='vim -u ~/.vim/vimrc'
então você pode acabar com o .vimrc separado.
MAS
Isso causará problemas com outros programas interagindo com o vim. Pressionar 'v' em 'less' não funcionará, pois ele chama o vim através do conteúdo da variável env do EDITOR. Eu suponho que você poderia adicionar o bit '-u ...' na variável EDITOR. pode funcionar.
Para o gvim, você usaria um 'U' maiúsculo para especificar o local do arquivo .gvimrc. Novamente, os problemas ocorrem a menos que você altere TODAS as possíveis localizações iniciais do gvim nos links iniciais do gerenciador de janelas.
No geral, sugiro usar a sugestão do @remyo se você DEVE ter tudo em um subdiretório.
É relativamente fácil criar um script pós-pull que restabeleça o link entre 'repo / .vimrc' e '~ / .vimrc'.
Boa sorte.
(você poderia recompilar você mesmo, especificando um novo local padrão para o arquivo .vimrc.)