It is good to have a canonical version, but the canonical version and the root version may be entirely different. The author brought up this point, talking about a project that he had started, which was later forked. That fork has many more features, and should be considered the canonical version, but isn't.
So, what are your choices to elect the canonical one then?
First project pushed is canonical and can pass the baton?
Seems better to drop the idea of a root or canonical version totally. Linking forked projects together with hashes for the network graph seems like a good idea personally.