Sem querer ser chato, já que sou ex-fundador e ex-membro do Clube dos Malas aqui do Fórum, deixa eu ver se eu entendi, quer dizer que eu faço um programa pra Linux específico pra uma área, gasto meu tempo e recursos próprios para programá-lo e para ser considerado 'livre' e dentro da filosofia, tenho que disponibilizar o código-fonte pra qualquer um pegar, melhorar a programação e passar a ganhar (mais) dinheiro com ele sem ter o mesmo trabalho que eu tive? Mas que beleza! Adorei a idéia! Yeah!

Não tenho conhecimentos profundos e técnicos quanto ao que seja software livre, mas penso que o seu pensamento ficou um pouco simplista, não vai aqui nenhuma crítica ou termo pejorativo ok, pois quem é que diz que melhorar um software seja algo assim simples?
Para mim no mínimo ele tem de olhar todo o código analisando o mesmo e vendo onde é possível se fazer de outra forma sendo assim mais eficiente e como terá de disponibilizar o condigo fonte o autor inicial pode pegar a idéia e usar também, além é claro de se fazer uma nova melhoria no mesmo e assim vai. Seria o espírito colaborativo, a comunidade de desenvolvedores, veja que o linux partiu disso.
O que seria do desenvolvimento do linux se houvesse um pensamento assim, não vou criar algo livre por que todo o trabalho que tive poderá aparecer mais alguém e melhorar o que fiz "sem ter todo o trabalho que tive" e quem sabe ter alguma retribuição financeira sobre a minha idéia inicial.
Os mais entendidos sobre software livre podem tecer mais comentários sobre sua real definição.
Só sei que software livre não é sinônimo de "dado" ou "de graça", por que estes termos implicam que a questão é de preço, não de liberdade.
Software livre refere-se à liberdade de os usuários executarem, copiarem, distribuírem, estudarem, modificarem e aperfeiçoarem o software. Mais precisamente, ele se refere a quatro tipos de liberdade para os usuários do software:
- A liberdade de executar o programa para qualquer propósito;
- A liberdade de estudar como o programa funciona e adaptá-lo para as suas necessidades;
- A liberdade de redistribuir cópias de modo que você possa ajudar ao próximo;
- A liberdade de aperfeiçoar o programa e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie.
Um programa é software livre se os usuários têm todas essas liberdades