Well, the thing is, sometimes it makes sense.
In the stable tree, for example, the commits often point to the particular
commit in the *development* tree that the particular stable commit was
cherry-picked from. And that all makes perfect sense - but such a commit
will not even exist in that tree (very much by definition: the whole point
of a stable tree is to *not* have all the development commits in that
tree, so just individual commits get moved over).
So it does make sense to point to commits in totally independent trees at
times.
Yes, it could be an option, and yes, you could probably enable/disable it
on a per-repository basis (ie the above kind of thing tens to make sense
for certain repositories but not others). But it's definitely not
something that necessarily always makes sense to do, so it's likely not a
good default (and if it's not a default, then mistakes will continue to
happen).
Linus
-