My theory is that unit selection for rebelling towns works through the same programming routine as the automatic unit selection for custom battles. The town gets a virtual budget to spend on units and upgrades. The unit choice is limited to what is available for recruitment (based on the MICs and the "faction_owner" setting of the governor's residence), but experience and weapon upgrades can be bought regardless. An exception is when a revolting town is designated the eleutheroi capital: then it can recruit anything.
Bookmarks