Não há necessidade de armazenamento em cache em df , pois df realiza uma única chamada statfs() (por sistema de arquivos). E obviamente esta chamada lê arquivos em disco e soma seus tamanhos ... Os sistemas de arquivos (por exemplo, o kernel) controlam o espaço livre.
du usa (sem estar ciente disso) o cache de página que todos os aplicativos usam. Para armazenar em cache explicitamente entre execuções, teria que haver um "du daemon" de qualquer maneira.