Bien, entonces lo que se pide en la pregunta es lo que me comentas en alto nivel.
Precisamente, no encuentro una definición de fork que hable sobre esto en las diapositivas del curso. Pero buscando en google encontré esto. (https://man7.org/linux/man-pages/man2/fork.2.html)
The child process and the parent process run in separate memory
spaces. At the time of fork() both memory spaces have the same
content. Memory writes, file mappings (mmap(2)), and unmappings
(munmap(2)) performed by one of the processes do not affect the
other.
A esto me refería con "en el momento de hacer fork", entiendo que el padre le comparte sus datos al hijo (copia, deberia haber dicho). Desde ese punto en adelante, cualquier cambio no se va a ver reflejado en el otro proceso.
Concluyendo entonces, y para evacuar todas las dudas te. Padre e hijo no comparten ninguna de las siguientes, data, heap, stack ni variables en registros del CPU. Y en el otro ejercicio que compartí, lo que se imprime es 5.