This question originally appeared on Quora.
Answer by Gary Stiffelman, Entertainment Attorney
Ultimately, it's because they didn't give Kal enough of Superman's personality. He was too much a cipher. A tabula rasa for others to write their versions upon. His motivations were ambiguous. Why was he wandering around for years?
He seemed reactive rather than purposeful. Think of Iron Man or Batman. They each had a raison d'être. Kal didn't.
Part of it is the performer. Christopher Reeve brought it with him. Saving the kitten spoke volumes and let Chris's inherent sweetness shine through. Sadly, Henry Cavill was poorly directed and not given enough to build a real character upon. They seemed to think looking pensive or intense was a substitute for character.
Another is the script. It made him a cipher. For example, it was a huge error to allow Kal to watch Jonathan die. It made him far too passive and "alien." The Superman I love would have done something to save him, damn the secret identity. Thats why Jonathan's death in the first movie version was so moving. "All these powers, and I couldn't save him."
I also couldn't believe Jonathan told him it might have been better to let the kids in the bus die. That is totally opposite the upbringing Kal received in Kansas. It's why Kansas was selected as his home on Earth.
Lastly, Superman would never have allowed the fight with Zod to cause so much death and destruction in Metropolis. Zod was chasing him. Superman could have taken it to the desert, the ocean, or even the moon. Instead, the film makers chose to ignore the danger and instead play for the huge special effects.
Superman has endured as a character not because of his strength, but despite it. He is the ultimate good-guy, and the film forgot that.