This post is a mix of multiple topics yet what they have in common is exactly the title.
Actually, every tier-role that has demand on the market is overrated.
Though what does "senior" developer mean? (Except the fact that "senior" means "elder/old").
Can you tell the difference between senior developers with 5 and 6 years of experience?
What about seniors with 3 years of experience? No? Does it mean that a senior is about years rather than experience and knowledge?
There are multiple perspectives for the topic.
For an employee a title is something that measures his achievements and success. It is somehow a self-actualization from Maslow's hierarchy of needs.
Of course, material benefits are more important - almost no one would exchange higher salary and better working conditions for just a title. Yet, when it comes to choosing between two jobs with similar conditions, the one with a higher title is often preferable for an employee.
Out of that, every developer at some point of time reaches the level when it does not matter if he does know binary trees or graphs or the difference between stack and queue. On that level it only matters if he can complete the task he was assigned by himself. Three different experts with a huge knowledge gap between each other may complete the same common task in different ways, and in the end it often does not matter which one it was. The knowledge difference usually reflects in technical debt left after completing the task but in reality it doesn't really matter. Especially for huge companies which are designed to work that way. Technical debt is always there and the difference is either it is growing in linear or geometric progression. Usually it ends up with slower tasks completion and higher rate of bugs appearing. Which means that not only the title is not important but often the actual tier too.
For an employer there is only one balanced measure of success: spend less, earn more.
Everything else spins around this concept. Titles have no meaning for an employer and it is totally right. So, from an employer perspective, he is willing to put in an exact amount of effort to fulfill his comfort. Be it salary, titles or positions, task completion speed, bug rate etc. Every system exists exactly in a way it can exist. Each company has its own definition for a senior position. This is why there is a salary range for the same position. Senior in one company might be a junior in another and vice versa.
Also, high-tier developers may ask for less than lower-tier developers and employers won't usually care about that.
The only issue here is that, due to salary-discussion taboo, employees will preferably change companies rather than discuss the raise.
This one is more or less simple. Due to their job specification HR can't tell the real difference between the candidate they were asked to look for and the one they found.
Over that, HR is more about psychology than technology. This is why loud titles have high priority. It is easier to suggest that the employee with the "Senior" title prefix will fit with higher chances than the employee without it.
Though, the market is huge and there are low-level self-employed HR's who just scan everyone they can reach and will attempt to put them into positions they don't fit by description. Sometimes it works, because the interview team decides that the candidate might fit after some learning. When it works, it quite often ends with titles and salaries that are meant for a vacancy.
After some level of experience developers can't tell the difference between each other. It is just unmeasurable. So, the titles are useless. I guess it means that the salary indicates level better than the level indicates salary.