Hehe yes, we had that conversation before, I wanted to point that out because I felt it is relevant towards recent discussions.
There are two answers to the cut/paste solution you suggest.
First, i think your solution perfectly makes clear that any node you create will always have its gnx!!
That way you can include gnx references in your scripts (IE for refreshing data relative to your script, knowing the outline to search for values, etc, seems very convenient).
On the other hand, there is one more thing that could be done.
I'll just write this but please note I don't consider (or see how it could) to be necessary yet.
More often that not, I find myself coming back to track information that I thought i would never need to begin with.
So, going to the point, I think we could also track the "pasted pasted" nodes, by adding some kind of tail to gnx's.
This way we would have original gnx's, and "descendants". So if a gnx already exists, a paste again would make that gnx with prefix 0, 1, 2, etc, each prefix being the nth of "previous brothers" each node has.
Again, I dont think this is relevant right now, but we would be completely sealing for ever the gnx's door, since there is no more information (that I can think of) for gnx's than that one. We would be able to follow a node from his birth, until their death, going through all their "familiars".
This solution becomes full circle if there is a Leo gnx database checking inter-file gnx, in case we move a part of our outline from one file to another. The gnx-checker could check the DB and track nodes life altogether.
Would such a thing might make unl's obsolete? We would have an inter-file traceable node ID remaining forever..