I'm not competing, of course (can't even play the game!), but following a discussion with DynamicSpirit I tried a few starts, with two, one or zero defenders in Rome. Leaving Rome undefended resulted in an attack. One continuous warrior defending was enough to deter the AI. I haven't tried combinations involving defender(s) arriving immediately before the attack, though. Perhaps someone who has finished this game and has some time would like to test this more thoroughly.@DS: I recall in the pregame thread seeing a discussion that archer would not move toward a warrior garrisoned city, but would move toward an empty city. Seems like simple programming to write that. Then, if a warrior shows up just as archer arrives adjacent to city, it can't be fortified (or 5% at most), so the warrior is hard pressed to defend at 3 against the archer. Seems logical to program the AI to press the archer attack, as odds are likely 50% or better if not on hill. It would be interesting to see if a worldbuilder sim shows a fixed behavior of the AI archer in this scenario.
dV
I recall that in Civ3, the AI decision to attack a city seems to be made some turns ahead, and then locked in. Then nothing short of a peace treaty can prevent an attack. I realise the AI has been changed significantly for Civ4, but I can believe that some sort of "attack momentum" has to be implemented in order to prevent humans using "puppet strings" manipulation of the AI to confuse it.
Maybe that's what happened here, and the attack decision was made at the time when Rome was undefended, and "attack momentum" caused it to be carried through even when the defender arrived. It would be interesting to know whether *two* warriors returning to Rome just before the attacker arrives would affect the attack decision - clearly a single archer can then no longer expect to take Rome.