Sempre resolvi esse problema tendo um projeto pessoal onde coloco todas as minhas idéias malucas e coisas genéricas e depois licencio-o sob a licença BSD, que permite que as pessoas reutilizem, alterem, renomeiem, fechem e cobrem dinheiro por isto. Dessa forma, eu mantenho os direitos autorais, mas posso reutilizar o código como quiser para esse e aquele empregador, de modo que mantenho os direitos autorais do original, mas o empregador mantém os direitos autorais da instância reutilizada. Eu acho que se eles tivessem um problema com isso, teriam que me pagar para reescrevê-lo no horário de trabalho, o que não faz sentido do ponto de vista deles. Além disso, as empresas usam o código BSD o tempo todo, uma vez que a idéia por trás do BSD é permitir que pessoas e empresas o façam praticamente o que quiserem, incluindo rebranding e venda.
Então, é claro, se forem feitas adições ao código no local de trabalho, não será possível reutilizá-lo em outro lugar sem reescrevê-lo no meu próprio tempo ... o que é bom porque coisas genéricas tendem a ser relativamente pequenas, a menos que seja um idéia que justifica um esforço considerável de tempo livre.
Escrevê-lo no seu próprio tempo e licenciar o código sob uma licença no estilo BSD deve permitir que você mantenha uma biblioteca para si mesmo, que pode ser usada praticamente em qualquer lugar que você quiser.
Agora, quanto aos contratos que alegam sugar todos os direitos autorais de seus projetos pessoais ... isso provavelmente difere radicalmente entre jurisdições, mas em pelo menos algumas jurisdições ocidentais é meu entendimento que um contrato não pode fazer isso. O contrato pode dizer que sim, mas não seria cumprido em um tribunal porque os direitos autorais precisam ser explicitamente transferidos, em oposição a "toda a sua base nos pertence" - meio acordo que nunca seria mantido (em a jurisdição de onde eu sou de qualquer maneira). Existem várias restrições sobre o que pode ser sustentado em um tribunal por contrato, e é por isso que você geralmente (e espero) vê uma cláusula dizendo algo no sentido de que se uma parte do contrato não funcionar legalmente , o restante do contrato ainda é válido.
Mas, como sempre, consulte um advogado antes de interpretar isso como aconselhamento jurídico preciso. Eu nunca fui levado a tribunal por isso, então não conheço nenhuma dessas coisas como fatos à prova de advogados. :)