Linus Torvalds [off-list ref] writes:
I actually really liked Junio's suggestion of
[subproject "git://git.kernel.org/pub/linux-2.4.git"]
URL = http://www.kernel.org/pub/linux-2.4.git
...
Note how that example had nothing to do with subprojects per se: the URL
rewriting is really another issue. But yes, I think it might also be worth
it to actually be able to override the whole subproject data, ie also have
[subproject "kernel/"]
url = ...
branch = xyzzy
and allow that kind of information in .git/config to _override_ any such
entry in .gitmodules!
I just sent out a rather longish message that peripherally
touches this and said I liked the three-level thing Steven Grimm
suggested, which is essentially what you wrote above.
I am reasonably happy that we are in agreement and I was not way
off in the design area by myself.