@ A resposta do Gnouc vai na direção certa, mas você não deve invocar um comando externo de dentro da avaliação statusline ! Isso gerará um novo processo em cada movimento do cursor e caractere digitado, e arrastará o desempenho do Vim (como você já experimentou).
Melhor dividir isso em duas partes: um :autocmd
que atualiza uma variável sempre que o buffer atual é alterado e um consumo muito eficiente dessa variável na própria linha de status:
set statusline=%{exists('b:actualCwd')?b:actualCwd:getcwd()}/%f%=%m\ %y\ \%r\ %1*\ \%l\:\%c\ \%2*\ \ \%p%%\ \
autocmd BufEnter * let b:actualCwd = system('echo -n $(pwd -L)')