I disagree with the assertion that most "rock star" engineers work at big companies. The only big companies that have true "rock stars" are Google and Facebook and probably Microsoft too. All other "big" companies in the valley started with rock stars, who probably got rich from options/IPOs, who then got bored and left for another smaller company. Most companies have a huge brain drain after the 4 years vesting period after the IPO. And this happens more especially if the nature of the business changes, if management comes in that ladens the company with process, slows down innovation, etc, basically make the company less fun to work at.
One thing that is very discounted in the OP is the government. Many very good programmers work in the DOE, DOD, and other 4 to 3 letter named departments. Programmers, like the rest of us, are very diverse people. SOme like the 'fun' you talk of, some really value the stability of a mega corp or the CIA. Some are there only for the problems and their personal interest in them, some are there for their kids and kiss off the desk at 5pm exactly. Some like to paint, some like to go to Burning Man. Programming talent and 'rockstar' status is independent from motivations to do a job I think.
Also, the assertion that most top talent work at mega corps is a statistics issue, as other comments mention. More jobs, as a percentage, are at mega corps and the government. But more companies are under 100 to 50 employees. So, if you look at it from a percent of programmers, you see many more at mega corps. But as a percent of top talent, you see more at small businesses, simply because you can determine the top talent easier at a start-up as there is less debate who the top people are. Other commenters explain this better, sorry.
From what I've heard, pretty much every big company that does software is supported in someway by "rockstars." The difference with larger companies is that the ratio of bad to good tends to be much higher so that even if you work for one of these companies, you might never actually encounter them.
I've worked at several well-known large companies and it's pretty much not true. Top programmers want to work and hang out with other top programmers, so as a good, small company grows and starts losing their top guys to brain drain, the best leave before it's too late. They don't want to be surrounded by idiots or left doing shitty work.
Some of the ones that remain are probably very good, but they're not "rock stars".
I have met true "rock star" engineers that work at: Adobe, Akamai, Amazon, British Telecom, Bloomberg, Cadence Design Systems, Cisco, Disney, eBay, Goldman Sachs, Heroku, HP, IBM, Intel, LinkedIn, NASDAQ, Oracle, Pixar, Rackspace, Reuters, Salesforce, Toyota, VMWare, Wells Fargo, and Yahoo! just to name a few.