Existem dois motivos pelos quais isso é verdade.
Primeiro, por algum motivo ou outro gravador de SO ainda reporta espaço livre em termos de um sistema de base 2, e os fabricantes de discos rígidos reportam espaço livre em termos de um sistema de base 10. Por exemplo, um gravador do sistema operacional chamará 1024 bytes (2 ^ 10 bytes) de um kilobyte e uma fabricação de disco rígido chamará 1000 bytes por kilobyte. Essa diferença é bem pequena para kilobytes, mas quando você chega a terabytes, é bem significativo. Um gravador do sistema operacional chamará 1099511627776 bytes (2 ^ 40 bytes) por terabyte e um fabricante do disco rígido chamará 1000000000000 bytes por terabyte.
Essas duas formas diferentes de falar sobre tamanhos frequentemente levam a muita confusão.
Existe um prefixo ISO para tamanhos binários . As interfaces de usuário projetadas com o novo prefixo em mente mostrarão TiB, GiB (ou, mais geralmente, XiB) ao mostrar tamanhos com um sistema de prefixo de base 2.
Em segundo lugar, df -h informa quanto espaço está disponível para seu uso. Todos os sistemas de arquivos precisam escrever informações de manutenção para acompanhar as coisas para você. Esta informação ocupa um pouco do espaço na sua unidade. Geralmente não muito, mas alguns. Isso também explica algumas das aparentes perdas que você está vendo.
Depois de editar sua postagem para deixar claro que nenhuma das minhas respostas realmente responde à sua pergunta, vou responder a sua pergunta ...
Sistemas de arquivos diferentes usam diferentes quantidades de espaço para informações de manutenção e relatam o uso do espaço de maneiras diferentes.
Por exemplo, o ext2 divide o disco em grupos de cilindros. Em seguida, ele pré-aloca espaço em cada grupo de cilindros para inodes e mapas de espaço livre. O ext3 faz a mesma coisa, uma vez que é basicamente o ext2 + journaling. E o ext4 também faz exatamente a mesma coisa, já que é uma modificação bastante direta (e quase incompatível) do ext3. E como essa sobrecarga de meta-dados é fixa na criação do sistema de arquivos ou no redimensionamento, ela não é informada como espaço 'usado'. Eu suspeito que isso também é porque os meta-dados do grupo de cilindros estão em lugares fixos no disco, e assim é simplesmente implícito como sendo usado e, portanto, não marcado ou contabilizado em mapas de espaço livre.
Mas o reiserfs não pré-aloca metadados de qualquer tipo. Ele não tem nenhum limite de inode que seja corrigido na criação do sistema de arquivos porque ele aloca todos os seus inodes imediatamente, como acontece com os blocos de dados. No máximo, precisa de algumas estruturas descrevendo o diretório raiz e um mapa de espaço livre de algum tipo. Por isso, usa muito menos espaço quando não tem nada.
Mas isso significa que o reiserfs ocupará mais espaço à medida que você adicionar arquivos, pois ele alocará metadados (como inodes), bem como o espaço de dados real para o arquivo.
Eu não sei exatamente como o jfs e o btrfs controlam o uso do espaço de metadados. Mas eu suspeito que eles rastreiam mais como reiserfs faz. O vfat em particular não tem nenhum conceito de inode. Seu mapa de espaço livre (cujo tamanho é fixado no sistema de arquivos criado (a infame tabela FAT)) armazena grande parte dos dados que um inode utilizaria, e a entrada de diretório (que é alocada dinamicamente) armazena o restante.