Hmm, this also brings up what may be a solution for the Militia upkeep problem. Would it possible to use an add_money script that would negate or reduce the upkeep of a militia unit when they have been in a city for one or two turns? This would represent their working in the fields and shops and still be available to repel invaders.

Is it possible to script for a unit type like that?