This is actually a comment to the blog post at https://www.linkedin.com/today/post/article/20140603205337-223492-the-lo... , but I hope it will clarify my thoughts on interviewing for a new job.
This might apply to other professionals, but this is based on what I've observed in software development community. Also, there might be different types of workforce, and everything below might apply only to a narrow part of all software professionals. But I think the ones who prefer to withhold their salary are the ones to whom everything below will apply.
a) Some developers may be well aware of what their current skill-set is worth. It is actually not that hard to honestly evaluate where you stand - you just need to talk to peers more and not be afraid to talk money.
And speaking of "worth" - by that I mean worth to a company which needs the full skill-set of a particular person. Just because a candidate did not receive an offer doesn't mean his skill-set is worth zero. It might mean that this person was either not up-to what needs to be done, or this person is overqualified, or this company just has wrong expectations of what it costs to do this specific job, or they expect low quality, sloppy work to start with.
b) It seems that the only way to advance career money-wise in the US - is to switch employers. Somehow it happened that companies prefer to let their senior employees go instead of keeping them and their very valuable company domain knowledge in exchange for some cash. I've seen ridiculous situations where people with 10+ years spent with a company would get an average of 2% annual salary increase. And when this tenured employee left, the company was quite screwed since a lot of internal knowledge which could not have been documented just left along with this employee.
There are also situations where an employee learns more skills and becomes overqualified for the current company. I guess this will be more applicable to youngish employees and at smaller companies.
So... because of a) and b) scenarios where current salary is not even close to the market value and a developer knows more or less what (s)he is worth now with all the knowledge acquired, I see how withholding the current salary makes sense, since (speaking in words of a pretty decent recruiter I stay in touch with) "standard practice is to pay 10% - 20% more than the current salary is. What if what I am paid right now is 50% of what my skills are worth and I am not looking to hop through 5 companies in a short period of time just to get to a fair salary level?
Above does not apply to people who respond with "I don't know" to the question "How much would you like to make on your new job?" for obvious reasons. That's where a recruiter needs to help find proper expectations and make sure these align with both developer and employer's expectations.
Today I am personally not shy to disclose my current salary, but this is only because I am paid a fair salary. Not everyone has this luxury, and I used to not have it and therefore not disclose my salary. Now I have to ask recruiters what salary range a prospective employer has in mind because otherwise it is just not worth wasting time when compensation expectations are way off.
So, TL;DR; it doesn't matter what employee's current salary is, what is important are the expectations of compensation from both employer and employee. That is why employers should disclose pay (narrow) range and employees should either state what they WANT to make or recruiters should help them determine what they may be worth.