I think the underlying problem with how the AI conducts diplomacy is that it combines every single one of your interactions into a single list, without regard for who did what to whom. They can't possibly understand why you do bad things to them after they treated you like trash, because everything bad that's ever been done by either side is equally your and their faults (although they won't acknowledge their part in it in the actual UI).
So here's an idea. The game automatically creates a list of good and bad things justifying the AI's attitude toward you... so how about it does the same for you? In the Diplomacy Overview, lists of things each AI did to you on the left, lists of things you did to each AI on the right. This system could solve a myriad of problems, and this new source of information could even let the AI act in more nuanced and creative ways.
- AI denounces you? It shows up on the left list as an offense on their part. You denounce the AI? It shows up on the right as your offense. You denounce each other? It shows up on both sides. The AI sees matching offenses on the lists and computes the feeling to be mutual.
- The AI demands something from you. You comply. He demands something else. You comply again. The AI demands yet again, and this time you decline. At this point, the AI looks at the list of things it did to you, and sees that it already demanded from you twice, looks at military standings, and then either apologizes ("Forgive me. I suppose I have been asking too much of you lately.") or insists more forcefully ("Perhaps you don't understand the terms of our friendship. You give me gifts, and I accept them. Got that?") How he reacts is recorded on his list for future reference by yourself and the AI.
- Flipping the last point around, you manage to squeeze out a few things from the AI, and this is listed on his side as acts of good will on his part. But after enough such acts are accumulated on his part, he stops complying to your requests. At this point, you can apologize or threaten him, and your reaction will be recorded on your list.
- Now let's say you've managed to do a bunch of good things for an AI (let's say Cathy), with her not returning the favor so equally. Suddenly, Cathy DoWs you and gloats about how you were a fool to trust her. But luckily for you, you have the power of diplomacy on your side! You immediately denounce Cathy, bringing to the other AIs' immediate attention both yours and Cathy's lists. Using the internal weights set for each act of kindness/evil, they are able to come to the conclusion that you've been nice while Cathy has been naughty, and will react by denouncing her as well, labeling her as a bully and straining her relationship with the rest of the world.
- Of course, denouncements won't always work so cleanly. Let's say that this time, Gandhi declares war on you, but unlike Cathy has good reasons for it (meaning your list is showing a lot of bad things you've done to him in the past, and he's not going to lie down and take it anymore.) So before you start sending your soldiers to the front lines, you denounce Gandhi. But wait, what's this? They're all denouncing you! Turns out that wasn't such a good idea; they're looking at both your lists, and despite Gandhi declaring on you, your bad acts far outweigh his. They see you as the villain you really are. And worse, you tried to feign innocence by playing the victim! They'll distrust you even more than if you had simply let Gandhi denounce you.
These are just a handful of scenarios that are made possible using this double-list system. If you can program an AI to handle information presented in this way, you've got an AI that is far more analytical, empathic, and most importantly, capable.