I think that is a terrible idea. Although if there was a maximum number oh hits that a city could take that would simplify things a bit. It'd mean that multiple sieges could still be performed and any number of siege engines used, however extra siege engines would only help to ensure that the maximum hits would be achieved.
How about a logerithmic efficiency algorithm wherby the chances of each siege engine hitting are something like
chance = (normal % chance of hitting)/(no of siege engines)^.3
In this case
1 siege engine = 1 current siege engine
10 siege engines = 5 current siege engines
100 siege engines = 25 current siege engines
The above efficiency penalty for siege engines getting in each others way is probbably a bit too harsh but as you can see this system would certainly not sideline small alliances yet instantly destroying a city is in effect impossible.
Also the improved efficincy of a siege as time goes on could hing on this formula,r rather than improving % chance to hit the 1.3 will slowly approach 1.
Edited by col0005 - 04 Aug 2010 at 08:13