I've always thought the legal should be restricted to stuff you do in your job for the company rather than stuff the company does. I think it's fair for a company to say a person who does X for the company can't work on X in their spare time for sufficiently restrictive X (e.x. a very specific domain of expertise so not something broad like programming) where they might be jeopardizing company IP or using trade secrets to write external code. I don't think it makes sense for the company to be able to say that for everything the company does even if you have no contact with it. This creates some edge cases and challenges when the scope of your work changes but I think it's far fairer to have to hand off projects at that point than it is to have to hand off projects just for working at the company. It's a bit tricky because if a company only tangentially lets you work on something you may want to do projects to improve your expertise in that area without having to hand over all rights to said projects to the company. There is a legitimate concern about people doing near copies of their company work at home or withholding ideas in their job in order to use those ideas in a personal project. The current balance favors companies too strongly however.