Man of Steel retold Superman’s origin story and pitted him against genocidal Kryptonian zealot General Zod. Zod was raised in and believed totally in the old Kryptonian caste system, where people were bred artificially to be workers or warriors, etc. He wanted to turn Earth into a new Krypton, and this plan involved killing all the humans on our planet. Superman defeats Zod by throwing him and his army haphazardly through the buildings of Metropolis and, eventually, killing Zod himself. But he didn’t defeat Zod morally.
A lot of people didn’t like the ending of Man of Steel, for various reasons. A lot of people complained that Superman resorted to killing his enemy, which was uncharacteristic of him. But this is not why the killing felt cheap. A lot of people found the hour-of-so of people getting thrown through buildings boring. But this isn’t why the action felt meaningless.
Without a moral defeat, Zod’s physical defeat feels empty
The problem with Man of Steel is that Superman defeats Zod physically, but he does not defeat him morally. This robs the audience of the satisfaction we might have felt.
Consider The Dark Knight. When was the Joker defeated in this film? Was it when Batman punched the Joker with his fists? Was it when Batman dropped Two Face on one half of his face? Was it when Batman took the fall for Harvey Dent’s corruption? No, this is the moment when the Joker was defeated.
Batman’s fists are just there to put an exclamation mark at the end
The Joker plays a game on Gotham, to prove that the city is corrupt, and ruled by fear and self-interest. He plants bombs on two boats: one loaded with civilians and the other a prison barge. Each boat has a remote detonator that will blow up the other boat. If neither boat blows up the other, then both boats will explode after a time limit expires. The Joker wants to prove to Batman that the people of Gotham will submit to his chaos.
But the people of Gotham ultimately refuse to play his game. One of the prisoners takes the detonator on his boat and throws it overboard. The Joker is proved wrong and suffers a moral defeat. Batman’s fists are just there to put an exclamation mark at the end of that sentence.
What if we discovered that the crew had in fact colonised Earth but that the civilization on Earth developed in a different way from the one on Krypton
Compare this with Man of Steel. Zod’s belief that the old Kryptonian caste system is right and that the humans on Earth deserve to die was never shaken or proved wrong. It’s no use Superman beating Zod into submission if some bystanders could say, “Well, you know, Zod kind of had a point.” Without a moral defeat, Zod’s physical defeat feels empty.
Could things have been different? I think so. Here’s an alternative resolution to the film:
Remember the Kryptonian colony vessel discovered on Earth? In the film, the crew of the vessel hadn’t terraformed Earth or bred Kryptonians to live there – it had just remained dormant. What if we discovered that the crew had in fact colonised Earth but that the civilization on Earth developed in a different way from the one on Krypton, with no caste system and no artificial breeding. Zod would have realised that the people of Earth, who he had dismissed, were in fact Kryptonians, to whom he is fiercely loyal, and yet who are completely different from his vision of Kryptonians. His conviction would have been shaken. His purposes in terraforming Earth and destroying its population would have been undermined. Zod would have been defeated morally.
And then Superman could have hit Zod some more if he got angry about it.