Hard links são além do ponto. Eles não são o motivo para ter inodes. Eles são um subproduto: basicamente, qualquer design de sistema de arquivos razoável semelhante a um unix (e até mesmo o NTFS está próximo o suficiente neste ponto) tem links físicos de graça.
O inode é onde todos os metadados de um arquivo são armazenados: sua hora de modificação, suas permissões e assim por diante. É também onde a localização dos dados do arquivo no disco é armazenada. Esses dados devem ser armazenados em algum lugar.
Armazenar os dados do inode dentro do diretório carrega sua própria sobrecarga. Isso torna o diretório maior, para que a obtenção de uma listagem de diretório seja mais lenta. Você salva uma busca para cada acesso de arquivo, mas cada passagem de diretório (dos quais vários são necessários para acessar um arquivo, um por diretório no caminho do arquivo) custa um pouco mais. Mais importante ainda, torna muito mais difícil mover um arquivo de um diretório para outro: em vez de mover apenas um ponteiro para o inode, você precisa mover todos os metadados.
Os sistemas Unix sempre permitem renomear ou excluir um arquivo, mesmo se um processo o tiver aberto. (Em algumas variantes unix, faça isso quase sempre.) Essa é uma propriedade muito importante na prática: significa que um aplicativo não pode “seqüestrar” um arquivo. Renomear ou remover o arquivo não afeta o aplicativo, ele pode continuar lendo e gravando no arquivo. Se o arquivo for excluído, os dados permanecerão até que nenhum processo abra o arquivo. Isso é facilitado pela associação do processo com o inode. O processo não pode ser associado ao nome do arquivo, pois isso pode mudar ou até mesmo desaparecer a qualquer momento.
Veja também O que é um Superblock, Inode, Dentry e um arquivo?