Him killing Zod at the end is NOT a bad thing, this is young Superman who is just learning how to fully use his powers, hence this is based on a comic early on in that reboot's continuity. This is when he kills, because he has to, and then swears to never kill again and creates that "code" of his. People who have a problem with him killing the villain are idiots who have clearly never read the comics but try to act like they have. He did it because he valued the lives of those people in the train station more than the life of a Kryptonian general that tried to destroy the entire planet, sounds like Superman to me.