Avoiding loops and crossing edges in the final graph, which
directly results in a tree where you can follow the edges from
one author.

Of course some SOB links will be lost, but that is the tradeoff.
What will definitely be retained is:

* the author's existence and his attachment to one
  subsystem s/he contributed, though probably not the one
  with the major number of contributions

* gatekeeper positions in the tree (but by chance only)
  you can expect to find Andrew and Linus near the tree root

What could be improved as I think about the issues...

* count the number of submissions to a particular upstream
  person and instead of longest-chaining, do "weighted-chaining";
  essentially stacking a contibutor into the subsystem he
  contributed most to.
