The simple fact that switching branches doesn't auto update the submodule is awful.
git config --global submodule.recurse true