(No se casi nada de programación así que perdonadme si no uso algún termino correcto)
En mi humilde opinión, el problema surge de que no aplicamos el termino "libre" al software correctamente, sino mas bien según nuestros propios intereses.
Que un soft sea libre, significa en lenguaje llano, que podemos tomar un programa y modificarlo a nuestro antojo para que se ajuste mas y mejor a nuestras necesidades o gustos, no es una programación cerrada a la que no se puede meter mano.
Otra cosa muy distinta es el trabajo cada uno hace de forma individual, si uno crea un programa y cree que merece cobrar por ello, el que quiera usarlo debería pagar ya que no paga el soft sino el trabajo hecho con el y por ser un soft libre, puede modificarlo despues a su antojo.
Si quien lo modifica lo quiere para su uso personal, perfecto, pero si quien lo modifica menosprecia el trabajo del creador y piensa que no merece cobrar por el, aunque sea tan buen programa que merece ser compartido (absurdo ¿no?) lo cuelga en otros "markets" pues como mínimo que se pegue la currada de eliminar esas protecciones que puso el programador original no se dedique a un copia y pega muchas veces acompañado por una inclusión de publicidad por la que el si percibirá la remuneración que le niega a los demás.