The file descriptor 1 translates to the stdout FILE structure in the Kernel's Open Files Table.
Isso é um mal-entendido. A tabela de arquivos do kernel não tem nada a ver com estruturas de arquivos do espaço do usuário.
Em qualquer caso, o kernel tem dois níveis de indireção. Existe a estrutura interna que representa o arquivo em si, que é uma referência contada. Há uma "descrição de arquivo aberto" que é contada de referência. E depois há o identificador de arquivo, que não é contado de referência. A estrutura do arquivo aponta o caminho para o próprio inode. A descrição do arquivo aberto contém coisas como o modo de abertura e o ponteiro de arquivo.
Quando você liga para fechar, você sempre fecha o identificador de arquivo. Quando um identificador de arquivo é fechado, a contagem de referência em sua descrição de arquivo aberto é diminuída. Se for zero, a descrição do arquivo aberto também será liberada e a contagem de referência no próprio arquivo será diminuída. Somente se isso for zero, a estrutura de arquivos do kernel será liberada.
Não há chance de um processo liberar um recurso que outro processo está usando porque os recursos compartilhados são contados por referência.