I tend to agree that diplomatic victory needs to be reworked. All you need is one hold-out and it's impossible to do, and really the AI should be holding out if it knows it will just be handing you the win.
I've never seen Diplomatic victory done well in any game. It almost always boils down to a vote. If anyone gets enough votes to win, then everyone else dies. Why would anyone EVER vote for anyone but themselves? Anyone who does vote for someone else is essentially committing suicide and trying to take almost everyone else with them. In essence, it's a spiteful defeat condition that leaves one man standing, not "diplomatic" or a "victory". In our case, we vote by making alliances, so there is some reason to vote for someone else (problem 1 solved). The problem is, anyone who makes the last vote is essentially committing suicide and taking everyone else down with them (problem 2 is as bad as ever).
I think perhaps the best mode of diplomatic victory would be to allow for diplomatic annexations of rivals, and then leaving this as a subset of the "conquest" victory type. This would still mean you'd have to be careful of who you make alliances with, but it wouldn't make this quite so spontaneous or artificial.
As to the main topic, I think more to the point is that weaker factions should be coming to each other's aid if they're attacked unprovoked. Don't wait until after the battle is over and the superpower faction is getting ready to declare war against you anyways. Jump in and help your weak allies while they're still around to help you beat the stronger faction!