Isso está funcionando conforme projetado. Os descritores de arquivos podem permanecer abertos mesmo depois que um arquivo é desvinculado. A página de manual para unlink (2) diz:
unlink() deletes a name from the file system...If the name referred to a socket, fifo or device the name for it is removed but processes which have the object open may continue to use it.