The problem isn't that he's flawed, it's that those flaws are never brought up and they never result in any comeuppance on his part. He's an asshole and we're supposed to just accept that, and the characters accept that and let him get away with it. Saving the world is not an excuse, not even in real life. If you look at any of the "lovable assholes" in American cartoons and comics, the reason they're lovable is because that behavior gets punished, and we like seeing that, especially when they learn from it or try to make up for it. Sonic's behavior in StC just isn't acceptable, especially as a protagonist for children. Compare him to Bart Simpson, and you'll know what I mean.