Your comments

It's frustrating because (1.) I really don't like Tortoise Git, and (2.) SmartGit is otherwise such well written software. It seems like a pretty basic feature to be able to reset all submodules to the appropriate commit when checking out a different commit in the main repo.

I use Tortoise Git for that operation.

PLEASE FIX THIS! My project at work has 30+ submodules. This is extremely frustrating!!!