So, doesn't that somewhat defeat the purpose of the contract in the first place, in that the employer can do what they want, and the employee can withdraw their labour as they wish?
Firstly it depends what you think a contract is for? It does not protect your job or provide any protection to any agreement beyond the notice period. An employer can decide to double your hours and half you pay, but not before the notice period expires.
Just the same as your phone contract is only valid up until the expiry date, then they can change the terms and charge you whatever they want, and you can like it or leave.
Beyond that, the issue is one of power.
Skilled workers are generally in a better position, recruitment costs are 5K
minimum for any reasonably sized company, and that is before you consider any lost earnings or training costs, then a figure of 10-20k is not so outlandish. So employers have much less power to change things too much, as people walking can be a real threat to ££££.
Low skilled workers are more ****ed, recruitment costs are cheap and labour is plentiful. Some risk still remains for the employer (one company I worked at years ago went bust solely because it couldn't keep sufficient warehouse staff, kept missing orders and so then customers went elsewhere), but the risk is less.
The problem with these low skilled workers is that they don't unionise, though the problem with unions is they far to often went full ******, they ****ed themselves over as much as the employers did.
Small businesses are a law unto themselves, but with greater risk comes potentially greater reward.