One major gripe I have with long wars in FE (especially one's where your enemy jumps from one new city to the next) is that the AI does not get punished for hiding in it's cities if it knows that it is at a disadvantage. A AI army that on the open field would be crushed by my army now has the advantaged of 2 militia units that can turn the balance of a City Fight depending on there placement. It means unless I have a huge strong army attacking the city head on is pointless and will probably lead me to losing more people then I should.
However my real bone to pick here is that a enemy AI can sit comfortable in a city and start producing a new unit to re-enforce it without consequence, even if my army is standing on there city tile.
Surely it makes sense that there should be a HUGE productivity cut on a city if a hostile army is sitting within it's borders?