One thing I liked in some RTS games I've played in the past is that some upgrades had visual effects on units. For example: If you researched an upgrade that increased the shield of your base, the visual appearance of all your bases would change (different model and texture) to feature a more solid appearance for the building. In Megaglest, upgrades can be used to boost the traits of certain units or enable the usage of certain skills, but they cannot change the visual appearance of existing units.This is something I would really love to see fixed!
Since skills define the g3d file and animation speed, I think the easiest way would be swapping skills for a command based on when an upgrade has been researched. For example: A soldier can have the normal stop_skill / move_skill / attack_skill, but also a stop_skill_armored / move_skill_armored / attack_skill_armored. Normally the stop command uses stop_skill and so on... but once the blacksmith researches the armor upgrade, the same stop command will use stop_skill_armored. The *_skill_armored skills point to a different set of 3D models which includes the same unit dressed in armor.
Apart from the visual effect, this approach could also be used to completely replace an unit's attack with a whole different attack when an upgrade is researched, which could be an alternative to unit morphing. This is probably less important since you can already make certain commands only become available when an upgrade was researched, but I'm still interested in changing the visual aspect of units.