Файловые системы должны хранить размеры файлов (либо в байтах, либо в некоторых зависимых от файловой системы единицах, таких как секторы или блоки). Количество разрядов, выделяемых для размера, обычно фиксируется в камне при проектировании файловой системы.
Если вы разрешите слишком много битов для размера, каждый файл будет занимать немного больше места, а каждая операция - немного медленнее. С другой стороны, если вы разрешите слишком мало бит для размера, то однажды люди будут жаловаться, потому что они пытаются сохранить файл размером 20EB, а ваша файловая система дерьма не позволит им.
В то время файловые системы, о которых вы упомянули, были спроектированы, имея достаточно большой диск, чтобы достичь предела, звучащего как научная фантастика. (За исключением FAT32, но компания, которая его продвигала, намеревалась сделать это как промежуточную меру, прежде чем все приняли свою блестящую новую NTFS, плюс они никогда не были очень хороши в ожидании растущих требований.)
Другое дело, что до конца прошлого века большинство потребительских (и даже серверных) аппаратных средств могли выполнять только быстрые вычисления с 32-разрядными значениями, а операционные системы обычно использовали 32-разрядные значения для большинства вещей, включая размеры файлов. 32 бита означают 4 ГБ, поэтому операционные системы, как правило, ограничиваются файлами 4 ГБ независимо от файловой системы, часто даже 2 ГБ, поскольку они используют целые числа со знаком. Любая серьезная настольная или серверная операционная система в настоящее время использует 64-битные размеры файлов и смещения, что устанавливает ограничение в 8EB.