I believe in the right of people to form contracts, even for employers to require contractual conditions for employment. But it has to be balanced against the relative economic power of the two parties.
It's like saying a match between a pee-wee league football team and an NFL team is fair because both parties are governed by the same rules. “Fair” is only a correct assessment if you ignore the most important facts about the situation.
If a bazillion dollar company wants to require minimum wage, near-zero net-worth, workers to wear certain clothes, work specific hours, not moonlight (if employed full time), not be allowed to abscond with company secrets, etc., I have absolutely no problem with that. But if that same company wants to dictate that those employees will be bound, to their economic detriment, even after they are no longer being paid, from taking the type of jobs that they are trained for and that are commonly available to them, that seems inequitable.
After all, even if the cost of that employee going to a competitor is many times the hourly value of that employee, that still implies less harm to the mega corporation than hindering the future employment of that person.
And I should state that I am not an Amazon-hater; I am a loyal customer since the days when they started out just selling a few books on-line. I remember what it was like (not living in a big city) to try to buy uncommon or technical books before Amazon -- in a word, it sucked. But big companies just need to remember that a large part of what made them into a bazillion dollar companies was all those people depending on those commonly available jobs for money -- sometimes a significant fraction of their small income -- to buy the books, music, etc.