It seems mostly realistic for them to refuse city trades except when they are getting absolutely pounded in a war. There have been several times that I would stop the war to shift direction or because I tire of the war myself, but they refuse any sort of compensation other than something silly like 20 gold + 1 gold per turn.
Perhaps, a trade off could be a longer peace treaty, say 20 - 40 turns instead of just 10 turns, for serious capitulation in the peace treaty. I would rather have the option there, but it seems silly to never be able to use it.