One thing with the entire concept...um..what's the word...ahh...mmm, oh yeah Stalingrad.
The factories were making weapons and sending them directly to the front (about 2 blocks away) (this is why fedex never took off in russia) and there are countless medevil stories abotu cities melting down statues & dishes to create musket/cannonballs to defend the city from an enemy at the gate....the real problem with the badguys on the doorstep of a city is panic, not unhappiness...which would require ripping into the python even more and making a panic factor for city populations
panic is a little different than unhappiness, an unhappy population nicely cleanly cuts off your head, a paniced population uses you for traction trying to escape. Pre-industiral I'd let the armies at the gates be bribed to go away (can anyone say Attila?) as panic grows..post industiral..i dunno, with the civ engine nothing really applies since once you get a city you keep a city forever, where the population doesn't ever resent you 500 years later for being there (can anyone say the balkans?) which if you start changing all of that you get a very unfun game pretty quickly
and siege warfare (starving the varmints out) is alreayd covered in Civ, you just put a dude on every square of thier city space and bam, they starve, I didn't say it was practical or very much fun, but the mechanic is already there...and sieges were never fun, that's why the normans left J-town alone cuz they were tired of the diharrea they had waiting for the city to fall.
but as always Moopoo your stuff is great, if either one of us had any tech.skill we'd be making mods like spanish operas.