Petr Baudis [off-list ref] writes:
+Submodules are a special kind of tree entries which refer to a particular tree
+in another repository (living at a given URL). The tree entry describes
+the existence of a submodule with the given name and the exact revision that
+should be used, while the location of the repository is described in the
+`/.gitmodules` file.
I was surprised to learn that a commit ID in a tree does not
prevent Git from pruning the corresponding commit object if
one happens to exist in the same repository. That might be
best documented under "Tree Object" in user-manual.txt though,
rather than in git-submodule.txt.