Warmonger penalties aren't an inherently bad idea. The problem is that the logic for recognizing a warmonger is problematic. There's a lot of loopholes around warmonger penalties.
For example, liberating cities and being given cities in trade deals don't contribute to warmonger score. So if you want someone else's cities, then you can invade them, destroy their army, surround their cities, and then sue for peace and take the city as a demand. It doesn't work for capitals though.
If you want capitals (i.e. domination victory), then warmonger penalties are mostly unavoidable. Best way to dodge them is to make some friendships with other A.I.s and then pit them against your enemies so that you can bribe them into declaring war. If an A.I. is at war with another civ that you are at war with, then they won't hate you as a warmonger. And the bribe doesn't necessarily have to go to your ally either. You could give a bunch of resources and gold per turn to your enemy in order to bribe them to declare war on your ally. Then on the next turn, declare war on your enemy. This dissolves the trade agreement, and now you should get a green "We are at war with a common foe" modifier with your friend, as well as general immunity to warmonger penalties with that friendly A.I.