Unfortunately, as I see it, the main problem with the software engineering field is a more general problem of human nature. Ironically for a field that relies so much on logic, we are such slaves to fashion, we fail to perceive (or refuse to acknowledge) the special cases, and with disastrous consequence.
Case in point: 99 times out of 100 a full stack web framework may be warranted, and of course they are all the rage since RoR. But all the functionality comes at a cost: performance. Still though, I've seen companies attempt to use a full stack framework for clients including some of the most heavily visited websites in the world. I got to profile 2 such applications shortly before they were to go live, and there were such performance issues they could barely handle 10 requests a second, whereas under load they were going to need to handle 100 or even 1000 times that number. Profiling revealed that 10's if not 100's of thousands of function calls were being made to render the home pages for these applications, and 95+% of those calls were framework specific. Long story short, accounts were lost, and people lost their jobs.
The only solution I can currently conceive to this problem is, as with physicians, some sort of certification or licensing. This way, not just any mediocre developer with "Senior" at the beginning of his title because he has 10 years of experience, is going to be able to as easily overrule the certified/licensed professional. (EDIT) I don't mean something like Java certification either; rather, something that for instance the ACM would admininister.
I applaud your desire to be great. Be prepared along the way to be considered a crackpot. If you are not generating lots of resistance, you either aren't trying hard enough, or just don't have the raw material to be truly great.