I think you're missing the logistics needed to do this:
1) to officially reject someone usually needs asking around to build consensus that regardless of any changes to org structure, to outstanding offers, to the current set of interviews, etc. that this person will not get an offer from the company. Information is usually not precise, and often partially missing in the interview loop. Most of the information is focused around the top candidates, so "maybe" tier candidates are less discussed and decisions are not really made on them. So then you have to talk to your manager, colleagues, HR, etc. to make sure everyone is on the same page. A mistake here is costly.
2) you usually make offers to the best candidate, and if they decline, move down the list. So to reject someone means that this best candidate has accepted the offer. But they get a certain amount of time to consider it (often weeks, sometimes months), when you're frozen. Then you have to remember to reach out to the rejected candidates (I guess you put it on your calendar, and someone has to ensure this happens). To do fast rejections, you need short acceptance timelines, which is offputting to some candidates. Why risk pissing off your candidates you're giving an offer to, to make candidates you're not giving offers to happier?
3) even if your best candidate accepts, something might happen before they start (they change their mind), or you find out within a week of their joining that they're problematic. If you didn't reject other candidates, you can still approach them and say "sorry, we originally didn't have a position for you, but now we do", whereas rejecting them "we're moving on" closes that door
4) I haven't even gotten to the legal or reputation repercussions if you reject someone and do it in a way that can be interpreted as a problem. You can't let any employee deliver the news. This all needs policies and coordination.
1) Not really. Not where I work, not where I worked in the past. Maybe somewhere, but if we are talking about tech, rejections can be very quick.
2) In some companies they made a list and they then go down if the top option(s) do not accept, in others you are either the first or they re-do the search. It is company's/hiring manager culture/decision.
3) Very unlikely. Nobody likes to be chosen explicitly as second or third, as the hiring you also have to deal with someone who you did not want initially because you preferred the other(s) and as the candidate you accept to get into a problematic situation from the start.
4) Plenty of companies reject firmly and clearly with no legal follow-up whatsoever (or it they are very occasionally sued by some candidate, we all know it is part of the business).
Being rude, ghosting people, waiting for other candidates to accept before rejecting is all bully behavior of who's very often in a position of power, that is the tech company.
> you usually make offers to the best candidate, and if they decline, move down the list.
When I've been involved in hiring, we almost always have more than one opening, so this one doesn't resonate with me. We could always make a decision on 'would we like this person or not'. I've decided to hire an iffy candidate because of a corporate imposed time crunch (position went away if we didn't hire by X, so we went with someone), and it was worse than being understaffed, so I lean heavily towards only hiring good enough people.
It would be good to be transparent about this process. You can tell me that I am not the first pick and may get an offer if a spot frees up and I will prefer that to hearing nothing back.
1) to officially reject someone usually needs asking around to build consensus that regardless of any changes to org structure, to outstanding offers, to the current set of interviews, etc. that this person will not get an offer from the company. Information is usually not precise, and often partially missing in the interview loop. Most of the information is focused around the top candidates, so "maybe" tier candidates are less discussed and decisions are not really made on them. So then you have to talk to your manager, colleagues, HR, etc. to make sure everyone is on the same page. A mistake here is costly.
2) you usually make offers to the best candidate, and if they decline, move down the list. So to reject someone means that this best candidate has accepted the offer. But they get a certain amount of time to consider it (often weeks, sometimes months), when you're frozen. Then you have to remember to reach out to the rejected candidates (I guess you put it on your calendar, and someone has to ensure this happens). To do fast rejections, you need short acceptance timelines, which is offputting to some candidates. Why risk pissing off your candidates you're giving an offer to, to make candidates you're not giving offers to happier?
3) even if your best candidate accepts, something might happen before they start (they change their mind), or you find out within a week of their joining that they're problematic. If you didn't reject other candidates, you can still approach them and say "sorry, we originally didn't have a position for you, but now we do", whereas rejecting them "we're moving on" closes that door
4) I haven't even gotten to the legal or reputation repercussions if you reject someone and do it in a way that can be interpreted as a problem. You can't let any employee deliver the news. This all needs policies and coordination.