No caso do Linux, funciona assim:
a) No caso de alterações ao kernel, elas devem ser obrigatoriamente divulgadas em licença GPL;
b) No caso de um driver que rode no kernel criado do zero, ao menos parte deste (as APIS) precisam ser divulgadas em licença GPL.
c) No caso de aplicações de usuário, elas não são encaradas como modificações ao kernel, e portanto, estão isentas de qualquer política de licenciamento. Note que por exemplo, a gnu libc (que praticamente a totalidade das aplicações de usuário num pc com server ou desktop usam, direta ou indiretamente) tem licença LGPL.
No caso do uCLinux, o entendimento dos desenvolvedores é que a mesma situação se aplica. É importante notar que a uClibc, a libc mais usada com o uCLinux, também tem licença LGPL, e programas em espaço de usuário (por mais que esta noção seja mais amena no uCLinux) são vinculados à ela, e não ao kernel. A licença do kernel explicitamente isenta os programas de qualquer imposição com a GPL, e portanto o código fonte destes não precisa ser divulgado.
Portanto, pra responder mais curto: Se você passar 4 anos em cima de um projeto no uCLinux e efetuar alterações ao kernel e esta for a parte "lucrativa" do seu negócio, sim, você precisa divulgar estas alterações, não tem "mas" nem porém, sob pena de infringir um caminhão de leis, nacionais e internacionais.
Se o teu "núcleo de negócios" for em aplicativos, você não só
não precisa divulgar o código fonte, como você pode protegê-lo através das leis de direitos autorais e de proteção intelectual, em particular no Brasil, pela lei de software.
Apesar de eu estar convencido da veracidade das informações que coloco aqui, preciso declarar que não estou prestando consultoria legal, pois não sou advogado e tudo o que eu disse representa apenas uma opinião pessoal. A lei dá aos advogados o monopólio sobre as consultorias legais, ainda que informais
