And when they do, it's standard practice to require that relocation and signing bonuses be repaid if the employee resigns or is terminated within a certain time frame after joining the company.
I work pretty regularly with HR. Do you?
Not only have I worked at a bunch of different companies, but I have also straight up failed at some of the earlier jobs, and have been in situations where I absolutely deserved to be fired, yet it took literally months for anyone to even approach the topic of my performance.
I am talking, situations of me not doing any work, for months, because I didn't care and was looking for new jobs during that time period.
My experience has shown to me that engineers are pretty damn untouchable. And yes, these have been (mid sized) startups.
The one time I had a reloc bonus, of a job that I left after 5 months, they did not ask for it back, and simply never talked to me again.
It is not about signing bonuses though. It is mostly about things like bad Glassdoor reviews. Many engineers would never ever work at a company where the engineers were constantly terrified of, and complaing about being fired quickly.
Also, disgruntled ex employees are something that you don't ever want to deal with.
What everyone else does is completely irrelevant.
In the programming world, specifically, which is what we are talking about, firing is extremely costly.
This is proved by what companies in the programming world are doing right now.
If you disagree, then you are disagreeing with basically every major tech company in the world. And personal, my bet on who is right would be those tech companies, not you.