If I have to suggest some sort of mechanism... make it such that every war is the same (throw out the stupid casus belli and denouncement system altogether--AI doesn't care and surprise wars are not at all punishing) like it was in BNW. You just declare (even on a friend or ally), short and simple.
Instead, tie down the war weariness/allowance for razing/taking cities based on the initial grievance levels when war is declared.
Let's say, declaring war costs 100 grievances (as do surprise wars now), so a DoW against an innocent target who has caused you no harm whatsoever puts you at -100.
At this level the defender gets a -100% reduction to ANY action he takes in the war which would normally cause grievances (which means, he can raze your entire empire without anyone saying anything). Also, your war weariness is increased by +100% from baseline. (And IF I may be allowed to be a bit extreme, the aggressor in this case should take -10 combat strength to all units, so the attacker must have vastly superior forces--just for a gameplay balance purpose of the aggressor getting the advantage of striking first)
Another scenario, let's say the target refused to give a promise you asked (-25) and declared war on one of your CS in which you had an envoy (-25), declaring war against him puts you at -50 instead. He gets -50% reduction to any retaliatory action he takes, your war weariness is increased by +50%, and you suffer -5 combat strength.
Again, let's say that the target had actually been a jerk.. he's broken a promise to you (-100 grievance), you swiftly retaliate by declaring war then and there. The grievance now adds up to a net of zero. Neither player gets any grievance reduction to any action he takes in this war, they get normal war weariness, and there is no combat penalty.
If he's a big jerk (he's holding your cities, etc. and has declared an unprovoked war on you previously) and is sitting at -200 for example, now this time YOU get a -100% reduction on grievances (meaning, you can wipe out his entire empire and the world says serves him right), he gets doubled war weariness and suffers -10 combat strength.
It would nerf active warmongering enough and make it a lot more logical for players to value alliances which boost both sides rather than aiming to just take away the other's stuff.