Fair point, however there is so, so much that is ambiguous and indeterminate. Some jobs, let's say line-chef or administrative assistant where roles are very clear and variance between a individuals is relatively low, often do have salaries or wages stated up front. In the line of work I'm familiar with, hiring developers is Pandora's Box - you have absolutely no idea what it's going to be like a year down the road. I've worked at startups, big tech companies, research labs - at absolutely none of those places did the work I end up doing match the specific requisition I had applied to. Furthermore, in almost all cases each staff member has an extremely unique specialty that do drastically different work - despite having the same job title and classification.
Edit: Also, when a company does not disclose the salary range for the position it actually provides a very useful data point., You can pretty much be sure it's at most average -- but probably less-than-competetive -- market rates. The major and popular tech companies don't need to do this because they have a reputation, but the smaller companies can either show they too are competitive (by publishing above-market rates) or show they do not offer competitive salary (by not publishing their salary target).