I agree with your premise there are lots of "developers" who have worked on a project that used technology X... And realistically only a couple members of any team are producing 70-80% of the code, but the recruiting agencies and HR depts are a huge part of the problem. I am (no really) in that 5%, but I have the hardest time finding jobs, because I've worked all over the map... From designing huge networks, to automating deployment of tens of thousands of network devices, to DB design/DBA type work, to software design, development, etc both web and client based.
If you don't need to beat recruiters off with a stick it's because you're not using linkedin, live in the wrong place, or have big resume problems.
If you're at a career point where you're not satisfied with the jobs within your social network you need a linkedin presence (I'm trying for a start-up home run so I can retire and bootstrap my own companies without giving up my middle class lifestyle. Connections at big companies, small companies unlikely to see exponential growth, and startups with bad business plans don't get me there).
If you're really into writing software you should probably live someplace where there are lots of businesses where doing that well is essential to the bottom line. There's the SF bay area and every place else (41% of 2011 venture capital spending went to Silicon Valley and San Francisco ranks high too). Austin, Boston, Boulder, Raleigh, and Seattle/the East Side are most of the rest. Those places have higher costs of living where the salaries don't quite compensate although you probably spend more time working than anything else and are likely to be happier with the better job and a smaller home where you spend less of your time.
List all of the key words you've worked with. Eliminate those you don't want to do again (for instance, I don't like dealing with the Microsoft tool chain or library issues so I don't admit to having worked with C# even though I did so as a Microsoft employee.). Now you have your bases covered for recruiters, big company HR, and their key-word matching software.
Sort into categories somewhere along the expert / experienced / other continuum so you are not mis-representing your skills to the technical staff that interviews people and makes hiring recommendations.
If you are answering recruiter's emails and phone calls but not getting interviews it's because you have resume problems. The meat of your resume is written for engineers and managers. Engineers want to see what you personally accomplished technically. Managers want to see what you did in terms of leadership to deliver products sooner / more predictably / with lower cost and how your technical and non-technical contributions improved the bottom line.
If you're interviewing but not getting job offers there are problems with you.
I need to see that senior candidates have built bigger and more complicated things than junior candidates. I accept that in many situations candidates were limited by what was on the table, although after enough positions if they're not doing big things it's because they're either not interested or not capable in which case I'm better off hiring a less experienced candidate that I can grow.
I expect senior candidates to have practical experience with process and the things surrounding writing code and value doing them well because it makes delivering products faster, more predictable, and more pleasant for everyone. I've seen some real stupidity from executives "test code doesn't ship to customers" "we'll add quality later" and accept that many people spend time working in such environments, although after enough positions if they're not doing things it's because they're not interested enough in their craft do do a little side reading and experimenting or they have attitude problems ("I'm too good for unit testing!") in which case I'm better off hiring a less experienced candidate that's more likely to be trainable.
I look for four aptitudes in all candidates
1. The ability to think logically, identify edge conditions, and express that
2. The ability to deal with indirection
3. The ability to apply knowledge to engineering problems.
4. The ability to grasp parallelism
with a set of questions covering them that changes some with time. There aren't any trick questions here - engineers which do well as employees tend to make it through the current first question in under 10 minutes and the rest under 5 after which we can talk about their work history and other things. When I was young and naive I caved to management and overlooked a few problems but have since learned my lesson. People you don't want to hire can spend 45 minutes on one and not get to an answer.
HR departments are so keyword driven, they don't know what to do with my resume. I'm repeatedly told by recruiters "Well, this company only wants java experience, so you're out because you have other experience on your resume".
I've never run into that but would take it as a good indication that I don't want to work at the company. Broader experience should imply exposure to other ways of doing things some of which translate to faster / more robust / more maintainable code.
Or: "Your C++ experience isn't recent enough"...
You don't need to list what tools (including language choice) you used for specific projects.
There is a class of software engineering jobs where what you're doing is a lot harder than learning tools and APIs. Any of the companies you'd like to work for (and some you wouldn't) care more about that.
Microsoft hired me as an employee to write code in C# which I'd never used before and Amazon did the same for a position with a lot of Java although I didn't mention it on my resume and had encountered the language in one consulting project.
I wouldn't hire an employee who did not have experience in non-garbage collected languages because I suspect cleaning up after yourself comes from a certain attention to detail that's an aptitude rather than a teachable skill although otherwise I don't worry about language use.