First of all, every time I hear the term or see it in job advertisement I tend to throw up a little in my mouth ...
Most of the time they just look for people on whom they can dump a bunch of shit on at random times and they will come up with some solution. Most places do not look for a good programmer who can make a program (design, develop, test, document) from scratch, but someone who will be responsible for a group of lesser trained/skilled/experienced people or to maintain 10 different codebases, because they can, they are good. In that situation they will hate you, quit and spit on your grave. They look for a multitasking work-whore, not a thinking entity.
I can really understand the behaviour you are explaining though I don't think I am a "rock star" programmer ...
I am just a dude who spend a lot of time in front of the screen and spent 20 years between coding and system administration ...
However even with this, I know that I am annoyed by system admins who confuse bits and bytes, and who you have to send to a training so they can install Apache MQ for you in a way that it doesn't shit itself on day one.... I am also annoyed by programmers, who are capable of spending the day looking at "cute cat videos" and then get upset if someone asks them why they didn't submit a line of code for 4 days into the repo... or when I figure out, that all the dev servers are down, but none out of the 10 developers actually noticed/reported it... because .. well... at 11 pm they didn't even try to work yet....
I am sure "rock stars" who are far superior than me can get pretty nasty about these if me (lesser mind) is so much annoyed by them....
That said. Good programmers tend to quit shitty places. A players play with A players and many times are complete asses to others. The truly good coders I knew were always normal to normal people. It is not skill and knowledge only. It is attitude. Many times it is not skill or experience who divides A and B, it is dedication, interest, willingness to learn, willingness to spend 100 hours on a problem, willingness to write 10 POCs before deciding with a technology/library/language.
Rating yourself a 7 or anything at all I think is a bad idea. It is a much better idea to find out in what task you can be an A then pursue that, or chose where you are a B and then make yourself an A.
That's how I see it....
That said, at most places where I worked I did not find the technical aspects of the job even slightly challenging. What kills me most of the time is really the laziness of most and the total lack of logical thinking (as in common sense).. Want an example? HP backup engineer, first expends the Veritas file system, then makes the backup (from a system, that had no backup, only the live copy), or first killing my VPN then asking me to help (reading a 100 line shell script code on the phone as I had no access).... this is the kind of lack of logic you deal with every day....
To put it more simply: the more experience/knowledge you have, the less you tend to tolerate STUPID. I guess some of these "rock star" coders got to the point where they have zero tolerance towards stupid, they are tired of explaining the same shit over and over, they are tired of sending the same mail over and over (after first documenting, emailing, then explaining it the first place).... they are sick of rules that are made to govern the lazy, they are tired of working 8 hours, knowing that they do more in 4 then the idiot next to them in a week .... etc etc...
I don't think you have to be a "rock star" coder to see these things. If you ever worked with people who just didn't make any sense at all, and they were slow, lazy and .. .well maybe not that bright, then you can imagine how the "rock star" feel about the rest of the population...
Just my thoughts...