Yeah, they all want 3-5 years experience, but they're more than willing to hire someone with less once they realize that someone with 3-5 years experience is probably not available at the salary they're willing to offer.
They definitely are. If more developers knew how to negotiate, weren't so meek, and knew how to persuade/explain to managers that outsourcing is going to cost them a lot more in the long run, then the average developer would probably make a lot more money. But bargaining doesn't work so well on an individual level unless a lot of (good) developers are willing to bargain.