Places where I experienced this gross miscalibration: a large U.S. food retailer's digital analytics team; a small pharmaceutical research software company; a 25-year-old multinational scientific computing and supercomputing consulting firm; and an FFRDC research lab attached to a university.
In one of these places they even went on at length about how much the hiring manager liked me, how I fit all the skills they were seeking, and many team members remarked that I would "mesh instantly" with the team, and so forth. I had walked away from those interviews knowing that I had done a good job and feeling very confident.
Then they made a job offer than was around 75% of what I had been making before in a similar job in a similar cost of living area, and the new job's other benefits were far worse.
When I told them what I was making before, they just said, "it just looks like there's a bit of a gap here that we are unable to make up, but we think you'll be very happy on this team so we hope you'll consider our offer despite that." The people interviewing me in that company had even gone on at length about how successful their business unit had been recently, signing a new important contract, and how their biggest challenge was recruiting good people and staffing up to support some projects that had important deadlines looming towards the end of 2016.
I still continue to avoid sharing salary info, because I'm not convinced that sharing it would be better.
But I think what you might not be accounting for is that almost every single candidate in the tech world does share salary, freely and openly, from the very first minute they are asked, without even realizing it might have any side effects.
A lot of corporate recruiters are conditioned to expect this, and the minute someone fails to share salary, they flag them as "not a dope, can't hire them cheaply" and they just move on. Constraint number one, above any and all talent requirements, is that they must be cheap to hire ... for a lot of firms.