I can never really agree to such a clause, though. In the most extreme case it would mean I could never take on another contract, because I already used up all my programming tricks in the first one. For example I might have employed the MVC pattern, will I be able to ever use it again?