При переключении ветвей с проверкой git я бы предположил, что большую часть времени вы хотели бы обновить свои подмодули.
- В какой ситуации вы не хотите обновить подмодули после переключения?
- Что бы сломалось, если это было сделано автоматически с помощью git checkout?
Обновлен с помощью примера:
- В ветки А имеется подмодуль S при 3852f1
- Филиал B имеет подмодуль S в fd72d7
На ветке A, git проверка B приведет к созданию рабочей копии ветки B с субмодулем S в 3852f1 (с измененным S). git обновление подмодуля будет проверяться S на fd72d7.