From a gameplay perspective, what's the point in two city states going to war without major civ involvement? The city states aren't intended to do everything an AI civ does. That's by design.
Well, a point could be to have the CS give more of a diplomatic challenge by forcing some choices between CS on the player and making it impossible to have all the city-states as allies by increasing the negative influence you get with them, introducing a system by which certain actions (declaring war on them, being allied with their enemy etc.) would result in them refusing your bribes, gifts and cancelling their quests for X number of turns, for something like as long as an era). It should be more like it is with the major civs: it's a challenge to keep most in DoF with you at the same time, much harder after ideologies come into play.
There could be a big influence hit with your allied CS if you don't give up your alliance or friendship or trade route with another CS they are at war with. The CS could try to draw the AI and human player into their wars: "Genoa wants you to join their war against Budapest", with a big influence boost if you agree, but the risk would be the attacked CS also finds an AI civ to declare war on you... Quests from hostile CS could include destroying the army of another CS for them, or pillaging their land, or blockade them, or pillage trade routes to them (which would put you in trouble with the civ owning them). The other types could ask for things like promises not to renew your trade route to their enemy (or have you reassign them immediately), or asking you to rig their elections (which if it succeeds would remove the hostility between those CS for as long as you remain ally with both).
CS would be assigned 1 or 2 potential enemies randomly and to spice things up, there might be a 30% percent chance their enemies change when half the civs have passed into an era.
For balance, initiating aggression could be a behavior limited to the hostile CS. the others would go to war only if attacked or because their allied major civ drag them into wars, as right now.
That's all more ideas for CIV VI or another expansion of V, though, as it could complement a reworked, different diplo victory, one where the votes of CS would count for much less (something like 20% of total votes, no matter how many CS you have put in the game), and where instead of all civs being eligible only the three civs with the most votes would be candidates, and if a first turn fails the civ coming in third is eliminated and a new vote takes place. Instead of the vote taking place automatically at a given point, it would occur after the UN is built but only when one civ secures x% of the votes (say, 35%, or 50% if to win you need 66%). You would then have x turns to try to get the missing 16% necessary to win.
Personally I'd prefer anyway if most CS would disappear after Ideologies enter the game, either becoming satellites of their Order ally (becoming like puppets, but with a few extra benefits), annexed into the empire of autocrats, or ask for a permanent alliance to their Freedom ally that would be the protector of their independence (buffing the benefits of being their ally in some way, eg: a military CS might now pay the maintenance of units they give you). You would have to remain allied with them for X turns after you gain your ideology, a bit in the way the Austria UA works but for longer, and there would have to be a limit to the # of turns you have lost your ally status with one before the counter resets.
Absorbing a CS would give a culture boost to an autocrat, while satellites and protected independents would contribute to ideological pressure (more for their ally, less for all other civs with the same ideology).
I think it could be more fun to play with CS that way in the late game than the rather boring role they play in the diplo victory. The way so many CS endure to the end is too much like it the world was stuck in the early eras. A great deal vanished as independent entities in the renaissance and early modern eras.