I've been at companies which paid me 1/2 of what some my peers earned. I don't have time for these games. Give me your salary ranges for the position and I can negotiate. Otherwise I'm pulling numbers out of my ass.
The recruiter wants to pay me as close to 0 as possible, and it's up to me to push back on that.
But how are you going to go know?
In most lines of business, prices are public knowledge. In a retail setting, for example, you can look at the price tags on the shelf, in commodities we have price data published on a continual basis, etc. Anyone and everyone can just look if they want to see an effective range of what others are selling similar products for. This provides a decent mechanism for price discovery.
But labor prices, in the US at least, tend to be hush-hush (slowly starting to change, but still early days). Even where you occasionally find people opening up, there isn't a consistent metric used (e.g. some talk base salary, others talk total compensation, no mention of inputs [like how many hours are required to fulfill the salary], etc.), if they are even telling you the truth. And where you have the full picture on exacting price, you aren't apt to know much about the person. Someone doing the same job might truly be worth half/double what you are. People are not commodities.
Hiring managers and recruiters usually get to see term sheets across many people along with background on those people, so they have a reasonable idea of what is realistic for a person of similar stature, but that doesn't help the seller. And it is usually the seller's job to make the first price move, so all one can do is make a complete guess.
Employers have long pushed for that secrecy exactly so they have the benefit of knowing what the seller doesn't. And fair enough. You can't blame them for wanting to leverage that advantage if they can get away with it. But, to then be offended when someone isn't aware? You can't have it both ways.