Is there something new in a recent kernel or something I'm missing?
Não, se um processo sair, seus filhos continuarem sendo executados, o processo pai será alterado para init (PID 1). Ou algum outro processo dependente do sistema, procure, e. "subagiradores" no Linux.
Esse sempre foi o caso, o que permite que nohup funcione de maneira útil, bem como o processo antigo de transformar um processo em um daemon, bifurcando duas vezes, chamando setsid() e saindo dos processos pai.
Fechar uma sessão de terminal pode enviar SIGHUP para os processos restantes, mas eles estão livres para ignorá-la (e é isso que o nohup faz). Além disso, systemd pode ser configurado para matar quaisquer processos remanescentes quando uma sessão de login de terminal termina, mas você provavelmente está executando firefox dentro de X de um emulador de terminal, de modo que isso não se aplica.