It could be argued that he's a moralfag for sparing Vegeta, The Ginyu Force and Freeza -- on top of sending his son in to fight Cell to the death, without telling anyone his plan beforehand, along with healing Cell and all that shit that happened in the Buu Saga.
Then again, as a child, Goku singlehandedly killed the whole fucking Red Ribbon army, King Piccolo, nearly killed Tao Pai Pai and rammed an extending staff up a guy's ass for fun. Fuck that. Goku's no where close to moral.
Saving the world is an afterthought the guy, he only fights and train to challenge himself. He had evil incarnate, Kid Buu, resurrected solely to make him his training partner. The guy's a hero and an asshole.
All that said, he's still a fuckton better than most main characters, if only because he's an honest asshole.