How about making the tech tree open-ended?
For example, the attack land unit tech development line stops at Modern Armor available with Synthetic Fibers. Suppose you could flag certain techs to be allowed to be researched multiple times. This would show up in the research choices as techs labeled "Synthetic Fibers 2", "Synthetic Fibers 3", etc. This would be totally automated once flagged. You didn't have to create any new techs. The game would just increase the numbering.
If a unit was tied to a multi-researchable tech each discovery of the more advanced version would add 1 point to the attack factor (if flagged as an attack unit) and/or 1 point to the defense factor (if flagged as a defensive unit). Similarly the unit would also get a "version number":
Code:
Synthetic Fibers => Modern Armor : 24.16.3
Synthetic Fibers 2 => Modern Armor 2 : 25.16.3
Synthetic Fibers 3 => Modern Armor 3 : 26.16.3
...
Synthetic Fibers 10 => Modern Armor 10 : 33.16.3
And analoguous for the other modern units: Mech Infantry, Radar Artillery, etc. Personally I think Roman numerals would be better here, e.g. Modern Armor IX etc. but that's just esthetics.
Of course, if you wanted to call your Modern Armor 10 unit as the Bolo Tank then you could just go ahead and press SHIFT+R.
EDIT: It just occurred to me you could take this idea a bit further. There would be a text file (or a section in some existing text config) where you could add unit names for the various future levels. Those units coming with the basic game would be just:
#FUTURE_Modern_Armor
2 Modern Armor II
3 Modern Armor III
4 Modern Armor IV
...
30 Modern Armor XXX
And if you got beyond the name range the game would just default to the basic name with the version number added. But now you could easily mod the names to something you want:
#FUTURE_Modern_Armor
2 AI Tank
3 Robo Tank
4 Bolo Landcruiser
...
10 Battle Machine