In theory, if trade secrets are already protected, then either the non-compete's are setup as a double protection, or they are only being used to restrict movement. (neither of which seems fair in the economic sense)
Sometimes someone figures out a better solution to a problem than their current employer and they sucessfully go out and implement it. That's not a trade secret... The solution is wholly different.
A good example of the later case can be seen in the healthcare field. The same person architected the Cloverleaf interface engine (which uses TCL as glue language) and then went on to implement the highly popular Corepoint interface engine (which generally tries to avoid the use of programming/scripting language).
Corepoint is eating cloverleaf's lunch in the marketplace, the main similarity between them is what they do, how they do it is very different.