The thing I've never understood about this approach is the reason it's suggested not to give your number first is, presumably, it can anchor your salary negotiations lower than what the company was originally prepared to offer.
I've switched jobs a few times for no other reason than to get a huge salary jump, and I've always given my salary requirements to a recruiter or during the interview process based on the high, high end of industry salary surveys in my field based on my years of experience. Sometimes the conversation will stop then and there, but a few times they've bitten and I've gotten the huge raise. Not to be smug or anything, but I'm fairly sure I'm making quite a bit more than most of the co-workers I've had in similar roles, even if they have more experience than me.
From my perspective, I'm anchoring the salary negotiations on the high end, as opposed to letting the recruiter spit out a number first and anchor the negotiation on the low end. What would I gain from letting them make an offer first?