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!
--login
significashelldelogin,emboraeunãotenhaideiadoqueissosignifica.-i
euachoqueépara"interativo"? Não encontrei nenhum documento oficial sobre esses dois argumentos, por isso não tenho certeza.