And thus the power in salary negotiation is very loopsided, as the employee has much less information about the market and the competition than the employer has. Thus salary negotiations in most cases don't happen in a free market environment.
Why do you think the employee has much less information about the market and competition? If you work with an agency they'll tell you exactly what's going on in the market, salary ranges, number of open positions versus available talent, etc. For example, in Chicago right now there's a shortage of front-end developers and companies are having to show them the money since they get multiple job offers.
Salary negotiations happen when the company really wants you and knows that you have other options. Many employees under-sell themselves, but it is true that you can't negotiate (effectively) unless you're willing to walk away.
If you've got unique skills and aren't simply a cog in the machine, then you should be asking for about 20% more than what you'll take. Good employers will work with you and I would avoid the ones that aren't willing to negotiate. Never take the first offer.