I don't have a problem with AI declaring surprise wars but they should be prepared to follow through. I get the impression that the AI just declares war whenever the diplo modifiers hit a certain number regardless of whether they have an army or are even ready to go to war. In my current game, each AI neighbor declared war on me one at a time but did nothing. Pericles declared war with almost no military. So I invade him and take all his cities. A few dozen turns later, China declares war with almost no military. So I invade China and take 3 cities. Then about a hundred turns later, Saladin declares war. He had a small army but by now I was several eras ahead so my military was much stronger. I easily steamrolled him and took all his cities. It is 1700AD and I have entered the atomic era with like 12 cities. Pedro is pissed at me because I have more GP than him so I imagine he will probably declare war on me, even though my military is far superior.