It would appear that my allies can't tell when a blockade to protect them is different from a siege of their culture. (Fortunately, I figured this out before gifting them too many planets in my latest game...) I can see how one could exploit it if allies were too trusting, but as it is it's virtually impossible to be genuinely cooperative with your allies without angering them.
So, I propose what should be a relatively simple change: There should be two (or three) more degrees of trust after "Ally" on the relationship status slider, probably "Trusted Ally" and "Compatriot."
These positions would be harder to get to, possibly requiring one or more high-quality gifts (strong fleets, planets, massive massive riches, or advanced techs), but would still be more or less similar to the others. The differences would be as follows:
A "Trusted Ally" would be much more difficult to anger. You could maneuver fleets pretty freely around them and they'd basically ignore your influence when it hit their worlds, though getting too influential would still count against you and might knock you back to "Ally." Also, you would receive a trade bonus with a "Trusted Ally" and your influence would have less effect on their planets in general (maybe such that 8x would be necessary to get the planet to rebel).
A "Compatriot" would NEVER suspect you of ANY wrongdoing. It would be impossible to turn a Compatriot's planets by influence, and you couldn't actively break your alliance, set a trade embargo, or attack them. Your only hopes for breaking such an alliance would be by the random assassination event or by failing to "uphold your alliance" when they declare war, which of course gives you an out in that you can pay someone else to attack them if you really need to. You would have to request this level of trust through the diplmoacy screen, it wouldn't happen on it's own. You could also never gain this level of trust with a race that you've EVER attacked, though you could achieve it with a race who attacked you if you never actively fought back (assuming that the game can be made to keep track of whether your ships started hostilities or whether they got hit first).
With this system, it would be possible to have more complex cooperation, such as in my current game: Until I realized how untrusting my allies were, I was trying to give them large tracts of "land" out of my own invasion corridor in order to keep them from getting overwhelmed before I got to them.
(Side note: Y'know, I often hear "It's too easy to beat everyone on the highest difficulty level!" complaints, but I've yet to hear "It's too easy to protect the minor races while taking over the galaxy!" from them. Am I the only one who likes to try to keep an ally alive throughout the game, in addition to myself?)