An interesting question. I have not a final answer but some hopefully useful information.
The actual behaviour is defined by the POSIX standard (and was so always).
But the Linux kernel uses a different thread model internally. So it had to be changed to provide full pthread compatibilty. See this PDF from 2002: POSIX Threads and the Linux Kernel
The changes has been implemented with kernel version 2.6 (see Native POSIX Thread Library - Wikipedia
So older kernels used LinuxThreads - Wikipedia
] which are not POSIX compatible and might behave differently regarding child threads (which did not exist with the LinuxThreads model that uses so called "tasks").