Uh, Superman regularly faces foes capable of killing him (and the known universe). A "Superman" character should face Superman-level enemies. No one's arguing your DM should pull punches when you start optimizing; in fact, I think most of us would agree that the DM and player levels of optimization should be roughly equal.
Again, Superman's teammates are some of the most powerful in the universe. The Martian Manhunter is basically Superman with bonuses (and a weakness to fire, but that varies in effectiveness), Wonder Woman can hold her own against most planet-wreckers, Flash can solve literally any problem if the writers are bad enough at math (one comic had him doing something that would require him to move thirteen times the speed of light), and Batman is, well, the goddamn Batman.
So, to continue with this analogy, a party with Superman should probably contain the Flash, Wonder Woman, the Martian Manhunter, and Batman. It shouldn't be filled with second-rate heroes. If your team has second-rate heroes in it, play one yourself.
I think all of us would agree that showing up your party is a jerk move. There are ways to optimize without doing this. Personally, I wouldn't advocate optimizing to a level higher than that of your party unless they're so weak that the challenges the DM is throwing at you are hard to overcome.
As Tyger pointed out, you're absolutely correct. Optimizing also doesn't ruin a great character. Poor character does.