IMO yes, it was a pain in the ass.
Couple points.
You need to have strong enough intelligence so that no large city is ever overwhelmed by a large enemy force. The garrison is most useful to prevent enemy raiders like cavalry units from moving in and taking out lone cities. Cities on the border should be fortified and you should have at least some friendly units along the border.
Your relief force should be strong enough to prevent the enemy from continuing to pound on the city. If it isn’t, see the answer to your next question.
Then you better be damn good at combat or you’ve lost the game. Reduce the difficulty level and repeat.
Sorry, I don’t buy your 1.7 rule. Maybe in a strict fight with 2 units vs. a city. But it doesn’t take into account the inherent advantage of the city. It provides a safe place to park artillery or units which are low on health. It provides a strong bulwark that the enemy either has to attack, in which case they aren’t attacking your units, or which the enemy ignores, in which case it can pound on the enemies as your own units maneuver back and forth around the city, pulling back to heal. You can think of it as a bit of a force multiplier, not a strict addition of 1.7 units.
Plus, as previously discussed the AI is not particularly bright.
5 units and a city might not hold up against 10 units and a city, but according to your rule, 98 units and a city should lose to 100 units, and that’s bosh. I’d have to try it out, but for sure I think 7 units or maybe even 6 units can hold against 10 with a city support. And I wouldn’t be all that surprised if 5 could hold out, if well handled.
A lot of it depends on how big the city is, and how heavily fortified it is. A small walled city is not that great. A large walled city or better a large castled city is going to be tough for the enemy to take out. Of course once the enemy gets artillery (3-range) things are going to get dicier although the city makes a very nice place to park your own artillery where they can pulverize the enemy, without taking damage back.
I’m playing games on Emperor, Immortal, and Deity, so yes, I am well aware of how many units the AI can bring into a fight.