George - Oh, I see your plan now! Ah that method does work, and is kinda cool, actually. I still think that it's more complex and dangerous then method 1, though. Hmmm, it is slightly more convenient though.
Let's see, with method 1:
extension1: D9990000
item1: @001 = D9990001
item2: @002 = D9990002
...
extension2: D9990100
item1: @101 = D9990101
item2: @102 = D9990102
...
extension3: D9990200
item1: @201 = D9990201
item2: @202 = D9990202
...
Ok, not quite as convenient as method 2, but 2 requires the modder to be a little more careful and know what's going on. Also unids from 2 are more difficult to use in other files, since you have to manually adjust for the base unid addition.
I guess both ways work. I think method 2 will cause headaches and collisions for people who don't don't fully understand it or aren't careful with their numbering while being is slightly more convenient for knowledgeable, well-organized modders. Method 1 has the simplicity and transparency factor while method 2 has the coolness and convenience factor. It's a toss up. *Flips a coin.*
Betelgeuse - Bleh, you're too pessimistic! Of course it's possible.
Compilers do this sort of thing all the time with variables and multiple files. I could give a quick summary as to how to do it conceptually if you want.
As to how difficult it is to *implement*, only George can say for sure. I would want to hear his opinion on it before going further.