One of the cornerstones of zero hours contracts is that there is no mutuality of obligation, which means that the employer is not obliged to offer you any work and if offered, you are not obliged to accept it.
If a contract attempts to ‘punish’ you for not accepting work, then that does not mean it is illegal, rather it would suggest that you may not be a zero hours worker after all, but more of an employee. The employer cannot have it both ways - they wither have to accept that you are a genuine zero hours worker and have no obligation to accept any work, or treat you like an employee and seek to penalise you for breach of contract if you do not accept any work offered to you. However, if you are an employee you will get more rights against them and it would not be in their interest to treat you as zero hours rather than an employee.
I suspect these clauses are indeed deterrents to try and prevent people fro leaving like this or not accepting work, but if they do, then in reality the employer may not be able to do much, especially if that gives rise to the argument you are not a zero hours worker. So give them that argument and hopefully that will prompt them to reconsider their position and the possibility of trying to fine you.
I trust this has answered your query. Please take a second to leave a positive rating by selecting 3, 4 or 5 stars above - this is an important part of our process and recognises the time I have spent assisting you. If you still need me to clarify anything else, please reply on here and I will assist as best as I can. Thank you