I'm very uninformed on these matters, but just out of curiosity, what about the cases where you come up with some way to do it better but your employer isn't interested? Is getting them to sign a waiver saying that you can develop something on your own time on your own equipment the only way to legally create something that falls into the same category as what your employer is doing? So if they refuse to do that, you're effectively barred from writing a certain category of software unless you quit the company and wait X years?
I think it's reasonable to say that you can't compete with your employer, without drawing their legal ire, while you work for them. The flip side of it, at least in California, that it's very difficult for an employer to keep you from working on whatever you want for whoever you want (as long as you're not actually infringing on their IP or running off with their trade secrets), once you are no longer employed by them. The examples of this are legion - HP didn't sue Wozniak after he left to invent personal computers. Same for everyone who leaves Google or Facebook or Apple to pursue some idea of their own. "Former employer sues budding entrepreneur" is a story you almost never hear.