Com o uso do daemon, assim que a ultima pessoa utiliza e sai do banheiro (a ultima thread "não daemon" finaliza) a aplicação é finalizada. Contudo isto provoca o banheiro a ficar no estado de sujo, carecendo de uma ultima limpeza ser feita antes da finalização da aplicação.
Neste cenário de banheiros esta necessidade da execução de algo no Daemon depois que todas terminam não fica tão claro, mas em um cenário onde o Daemon lidasse com uma conexão ou acesso a um recurso, e o Daemon tivesse que liberar este recurso ou fechar uma conexão ... eu vejo um problema com o uso de Daemon.
Fiquei com essa dúvida, de como garantir que o Daemon ainda execute algo mesmo após a finalização de todas as outras threads? De repente com algum método de finalização da thread daemon? Algum agrupamento de Threads?