As a first (incomplete) answer, a lot of submodule corrections went between git 1.8.4 and 1.8.5.2:
C:\Users\VonC\prog\git\git>git log -Ssubmodule v1.8.4..v1.8.5.2
- commit ac1fbbda201:
submodule
: do not copy unknown update mode from.gitmodules
- commit 746593bdcaf:
refs
: remove unused functioninvalidate_ref_cache
- commit 04c1ee576ac:
mv
: Fix spurious warning when moving a file in presence of submodules - commit 927b26f87a5: submodule: don't print status output with
ignore=all
- commit 4b054402833: avoid segfault on submodule.*.path set to an empty "true"
- commit 95c16418f03:
rm
: delete.gitmodules
entry of submodules removed from the work tree - commit 0656781fadc:
mv
: update the path entry in.gitmodules
for moved submodules - commit 8745024422d:
parse_pathspec
: support stripping/checking submodule paths
It is possible one of those patches enhances the robustness of the submodule feature.
For instance, the msysgit issue you mention (issue 99) could be solved with commit 4b054402833.