Hola Gus,
excelente pregunta!
Vamos por partes:
1) al programador X lo protegen las leyes de copyright (en la que se basa la GPL -Licencia Pública General- de la GNU)
En tu escenario, el programador Y puede vender la aplicación y lucrar con el trabajo de X, porque X lo está permitiendo al liberar su código bajo una licencia de Software Libre compatible con la GPL. El programador Y incumpliría con la Ley solo si el programador Y digese que es el autor del código, en cuyo caso le caerá todo elpeso de la justicia... de hecho la GPL jamás perdió un jucio sometida ante un tribunal en ninguna aprte del mundo: es una licencia muy fuerte. Por hacer dado X su código bajo GPL, el programador Y está obligado a poner sus modificaciones también bajo la GPL.
El programador Z tampoco viola la licencia, salvo por supuesto que cierre el código o que diga que es el autor de las partes que hicieron X e Y.
2) a qué te refieres con "problemas de ese tipo"? En el caso de que los 2 sucesores respeten la licencia GPL manteniendo el código libre y respetando la autoría, no hay nungún problema legal, ya que la licencia, repito, permite comercializar y lucrar con el código ajeno (como hace por ejemplo RedHat)
3) El copyright en los proyectos de Software Libre trabaja igual que en cualquier otro caso: si alguien oncumple la licencia lo llevás a juicio. La gran ventaja que tiene licenciar el código bajo GPL es que, en caso de que el autor no tenga los recursos para hacer un juicio, basta con que le done el código a la FSF (Free Software Fundation) para que sean ellos los que la lleven a juicio... el objetivo de la fundación es justamente velar porque la licencia se cumpla.
4) Z y cualqueir otro posterior o concurrente en un fork están en la misma situaicón que Y, ya que todos parten de código que es Software Libre.
Yo supongo que cuando planteás los "problemas de ese tipo" estás pensando en que está mal que Y se haga millonario con el trabajo original de X (o alguien que se base en lo que hizo Y)... a lo que lamento decirte que eso no pasa. Lo lamento porque a lo que apunto es a derribar tu creencia de que alguien por un buen algoritmo se hará millonario: el código es una parte bastante chica de lo que hace falta para tener un negocio de software millonario (lo que se puede ver analizando por ejemplo la calidad de los productos de algunas grandes corporaciones, que son millonarias vendiendo software que falla o se cuelga iluminando de azul las habitaciones.
Lo que termina pasando si Z ve que se puede montar un negocio millonario, es que en primer lugar contacte a Y y más tarde a X o directamente a X, que es el que tuvo la visión y el ingenio para llevar a la práctica una buena idea hecha software. Luego x pasará a tener un buen trabajo y un buen sueldo gracias a su esfuerzo. Si X hubiera tenido la capacidad de transformar su buen algoritmo en un negocio millonario, no lo hubiera dejado pasar al momento de escribirlo!
Todo esto funcina si es claro que X e Y contribuyeron con el software y si queda claro cual fue la contribución de cada uno: que esto quede claro es cumplir con la licencia.
Saludos cordiales!
PD: mucho de esto está respondido en las PUF de www.gnu.org