Why? You get what you pay for (to a point). Lets say you have two potential employees - one has asked for $40,000/year and one for $50,000/year. Under your logic, assuming both are qualified, only the one asking for $40,000/year would be the right choice - they can all do the job, after all. But the employee asking for $50,000 is more likely to stay longer, will probably be happier, and may have some additional skills that aren't necessary to the job, but still provide value. Paying him $50,000 would not necessarily be overpaying, even though you could get someone to do the job for $10,000 less.
There's also the issue of employees undervaluing themselves, especially at the entry level. People will sometimes take a lower salary than they should due to lack of research or desperation. Companies can and do prey on this, underpaying to pad their profits.