Both --recursive not being default and then using --recurse-submodules when pulling are my top annoyances in git.
I'm more on board with the recursive options, though.
Are the Git maintainers so stringent on maintaining backwards compatibility that the implementation of submodules has remained in such a dire state for so long? I find it hard to believe that a VCS this widely adopted would fall over so easily for this relatively popular use case.
git config --global submodule.recurse true