Antes de ler as outras respostas, acho que pid_t existe por razões de portabilidade. Nos bons dias, alguns Unixes tinham short PIDs, outros tinham int PIDs, então você define um tipo específico de sistema para PID. Não me lembro de qualquer dor envolvida no uso de int para um descritor de arquivo, mesmo nos primórdios da 64 bits.