BTW I have every library set explicitly to either "develop" or "master".
IMO for libraries that you're not working on the best thing is to use whatever the superproject uses and not bother with branches. We might set the submodules to a different commit for some reason, so you could end up developing against the wrong version of a module.
OK, in other words basically ignore the issue? The danger of this is breakages - for example Boost.Build has completely stopped working for me because the super-project was updated but the subproject was not. A manual update of the boost.build subproject fixed things, but I suspect not everyone would realize that was what was needed. Whatever I suspect folks (well this one at least!) will need some very clear guidance on this, Thanks, John.