I voted A-. Spoilers ahead as I'm too stupid to ever get the spoiler code right.
SPOILERS ABOUND!!!!
Going in, I had hopes that this film would be the best comic adaptation yet. Cast, writer, producer - I was less enamoured of the director but the trailers convinced me that he'd put aside his Snyder-isms (and to be fair he has). It is a good film but it's not the best comic adaptation ever, indeed, it's not even the best Goyer-Nolan comic adaptation ever. It is, however, the best and most mature Zack Snyder film.
What works: Well, the cast are uniformly brilliant. Not just those you'd expect, the infallibly good Fishburne, Adams, Shannon and Lane. Not just the hit-and-miss vets Costner (who is particularly good) and Crowe. The many tv vets who appear - Chris Meloni, Richard Schiff, Harry Lennix etc - also hit the mark every time. And we even get to see 2 nuBSG actors onscreen together.
And, of course, Mr Cavill is just brilliant. At times funny, at times poignant, lonely, his out-of-his-place Clark/Kal-El/Superman is always charming and pitch-perfect. I was in the camp who would have gladly seen Brandon Routh return but Cavill IS Superman for this era in the same way that Daniel Craig IS James Bond. They each put their own identity on their respective roles, no aping Reeve or Connery.
The action sequences are as great as you'd expect with this budget and, of course, it being a Snyder film, it looks great. Not just the action sequences and the big SFX pieces, but Kansas, Alaska, Metropolis and the little character moments with Cavill, Costner or Lane in the farmhouse.
What didn't work? Well, I think they tried to cram too much into the opening scenes in Krypton; partly to show that this wasn't going to be another Superman Returns and partly to distinguish it from the Donnerverse. Krypton looks lovely and Star Warsy, the costumes and architecture are impressive but I don't know that we needed all the action sequences there. The whole 'Last Son of Krypton' plot ties in with a McGuffin about Superman's origins and Krypton's (possible) future which is frankly a bit silly.
A lot of the Kryptonian imagery and machinery was a little too redolent of the Matrix. Indeed, when you then have a Superman/Zod smackdown which is reminscent of that between Neo and Smith (yes, I know the Matrix copied Superman), with not only said machinery in the background but friggin' Larry Fishburne too(!), you may come away with a sense of deja-vu. Indeed, the action sequences in Metropolis are also quite like those in New York at the end of the Avengers, but I suppose that's an occupational hazard with comic book character movies.
HUGE SPOILER AHEAD:
Still reading? Your choice.
Jonathan Kent's death is very badly handled. For one thing, his gravestone reads '1951-97.' Ahem - Costner is meant to be 46 (at his oldest!) in this movie - and presumably younger at other stages? Riiiiight.
Added to which, the 1997 scene features Cavill as the 17 year old Clark (we later learn that Clark is 33 in the present day). They had in other flashback scenes used really convincing lookalikes for young Clark, but Henry isn't entirely convincing as a 17 year-old. I can understand why they wanted their leading man in this pivotal scene but it would have made more sense if they'd made modern day Clark a mid-late 20-something and set that scene when he was aged 20 or so. And made Kevin play his own age, FFS.
Anyway, the gist of that scene is that the Kents are driving along and come across a tornado. While Martha and Clark take shelter with other road users, sensible, pragmatic Jonathan, who has grown up in tornado country, goes back to the car to rescue the family dog and gets himself killed. He waves Clark away, as he doesn't want his son to reveal his identity by rescuing him. Now, given that locals already have seen Clark drag a bus out of a river among other tricks, this does seem a rather needless death on his part. Not to mention pretty stupid for a mid-Western farmer.
HUMUNGOUS SPOILER AHEAD.
YOU HAVE BEEN WARNED
YOU REALLY WANT TO KNOW?
OKAY, READ ON IF YOU MUST.
In the final battle between Superman and Zod, Zod, knowing he has effectively lost, baits Kal-El by using his heat vision to kill a family who are hiding nearby. He taunts Clark about this.
And Superman breaks his friggin' neck and kills him.
Seriously, that's the best solution they could come up with? Yes, it's in defence of others but to have Superman kill his enemy at the end of the film seems a betrayal of the character. Yes, he is then clearly distraught at having had to do so but surely they could have found some way for him to prove that he was cleverer and more resourceful than Zod? I predict this scene proving very controversial.
All in all, though, a good, enjoyable movie. Possibly one which suffered from trying too hard not to be Superman Returns or the Donnerverse, though. I missed the little scenes - the little rescues, the prevention of crimes, the helping people. Indeed, while Metropolis is being smashed to smithereens, we never see Superman recue civilians - Perry and another journalist have to save Jenny (Olsen?) by themselves.
Perhaps now with the need to be different from Returns out of the way, Snyder and co can include a little more character and thoughtfulness in the second movie. Then we might indeed have the best comic adaptation ever! For now - back over to you Mr Singer (DOFP!)