Ok, acho que encontrei o molho secreto para fazer isso funcionar. Meu mal por não prestar atenção aos detalhes.
A solução é iniciar o shell com --login -i paramaters da seguinte forma:
// works
C:\MinGW\msys.0\bin\sh.exe --login -i -cur_console:s1THn -new_console:d:d:\src
// doesn't work
C:\MinGW\msys.0\bin\sh.exe -cur_console:s1THn -new_console:d:d:\src
E agora tudo parece bom!

--loginsignificashelldelogin,emboraeunãotenhaideiadoqueissosignifica.-ieuachoqueépara"interativo"? Não encontrei nenhum documento oficial sobre esses dois argumentos, por isso não tenho certeza.