Como globpath()
tem uma lista separada por vírgulas de diretórios, você pode construir os locais como este (estou fazendo isso de uma maneira primitiva com duplicação, como você parece não ser muito versado em Vimscript):
function! sourceConfig()
let path = $HOME . '/dotfiles/vim/config/global'
let path .= ',' . $HOME . '/dotfiles/vim/config/plugins'
let path .= ',' . $HOME . '/dotfiles/vim/config/functions'
Então, essa lista pode ser passada para gerar a lista de arquivos de script, que podem então ser originados (note que sua sintaxe estava errada, e é recomendado fazer um escape apropriado):
let file_list = split(globpath(path, '*.vim'), '\n')
for file in file_list
execute 'source' fnameescape(file)
endfor
endfunction
Crítica de abordagem
Você não mencionou a motivação para essa reorganização, mas recomendo que recomende seguir os layouts de configuração padrão , o "all under .vim" ou o "diretório de pacotes separados por plug-in".
Por exemplo, sua abordagem listada não lida com ftplugins ou autoload , o que eu tenho certeza que alguns dos seus plugins terão / terão.