For the record - I don't think we're actually all
that far apart - I just had a couple of comments :-)
I definitely agree that the scenario you are in exists, and isn't necessarily uncommon. My wife is a recruiter - and I have been both sides of the technical side of the hiring table - so I have a pretty good idea of how it works.
I just disagree that refusing to give the first is really either all that effective a tool.
First - I think the two best things you can to as a candidate are to (1) do your homework so you're not at a knowledge disadvantage and (2) do the extra work to have several competing offers.
With your example, it sounded like the candidate had a solid understanding of what they were worth. What would have really changed if they had simply named their number first? The candidate clearly had confidence in the number (since they walked away from your best offer) It might have saved both of you some time if they had been up-front about it.
Anyway - I think I was making two primary points:
1) The best way to improve your negotiating position is to do your homework so you have knowledge and options. Knowledge and options will give you way more power in the negotiation than any trick will.
2) Negotiating for salary is fundamentally different than other types of business negotiations. A salary negotiation is (hopefully!) the beginning of a lasting relationship. I think it needs to be approached - from both - sides with more focus on "win-win" than would be appropriate for other negotiations where a more hard-nosed approach would be appropriate. Personally, I am wary of both potential employers and potential hires that don't approach it this way.
Sorry - one last point from talking with my wife...
A recruiter is not simply trying to get you in the door at the cheapest salary possible (neither, really, is a good company). There are definitely companies and recruiters that work that way. A good recruiter/employer is trying to get great developers in the door for a salary that will make them happy. A good recruiter/employer will know that having to re-hire someone in a year because they left for a better offer or because you low-balled them at the beginning and didn't adjust is much more expensive in the long run.
When negotiating with the recruiter - don't think in terms of convincing the recruiter. Think is terms of given them the ammunition they need to convince the person who will approve the offer. Give them facts, data. information - help them build the narrative that will convince the hiring manager/director/etc that has to approve the offer that they need to hire you for the amount you want.
To me, going in with knowledge about what you need and what you are worth and being prepared to help the recruiter sell you to the decision makers is a much better strategy than anything as simple as "clamming up" :-)