Hi Ian,
Welcome to WikiTree. Most people here are not versed in computer science stuff. I am, and so is Magnus Sälgö, and Aleš Trtnik too. There may be a few others.
The first thing to do, is to state the problem that you're trying to solve. Your post comes across like you're trying to teach graphing theory to genealogists, without any reason to do so. You say that merging has a problem, but you don't state exactly what the "merging problem" is, or why it is a problem here on WikiTree. Only after that happens can you hope to propose a solution that might work here on WikiTree. Realize that it might not work either.
As to the overall issue of "version control" within genealogy, this is why I like WikiTree. Because it is based on an underlying wiki, there already is version control. You can go to the Changes tab of any profile, see exactly what changed, and roll back to any previous version. The only exception to this is with merging. However, in practicality, there haven't been too many issues with merging, and not having enough version control, here on WikiTree.
There are other, bigger, problems to solve. And most of them usually center around teaching people about sourcing profiles, how to do it, and getting people to learn how to collaborate in the first place.
If you want to solve computer science problems around genealogical data structures, you're probably better off to experiment with your own software and post it on GitHub to see if it solves whatever the problem might be.