Na verdade, havia várias variantes do "FAT16" ao longo dos anos com limites diferentes, mas vamos considerar a versão que persistiu do "compaq DOS 3.31" até o Windows 95.
Os volumes FAT são divididos em clusters. Cada cluster é composto de uma potência de dois números de setores. O número de setores por cluster no FAT16 é armazenado como um número assinado de 8 bits. Portanto, o máximo de setores possíveis por cluster é 64.
Os números de cluster foram armazenados como um valor não assinado de 16 bits. Limitando o total de clusters para 65536. Multiplique pelo número máximo de setores por cluster e você obterá um limite de 4194304 setores.
O tamanho (lógico) do setor dos discos rígidos é de 512 bytes. Multiplique isso pelo limite do número de setores mencionado acima e você obterá o seu limite de 2GiB. Em princípio, um meio com tamanhos de setor maiores pode suportar um volume FAT16 maior, mas não acho que isso tenha acontecido na prática.
O Windows NT alterou a interpretação do campo "setores por cluster" para não ter sinal de 8 bits. Isso permitiu uma partição 4GiB FAT16 com setores de 512 bytes (e teoricamente maior em unidades com setores maiores). O AIUI windows 98 adicionou suporte para leitura e gravação de tais partições, mas não foi possível criá-las e seus utilitários de disco não puderam repará-las.
Certamente teria sido possível fazer ajustes relativamente pequenos no formato do sistema de arquivos para suportar clusters maiores e, portanto, volumes maiores. No entanto, a MS decidiu optar pela opção mais radical de migrar para um índice de cluster de 32 bits com o Windows 95 OSR2 produzindo FAT32.
Acredito que a razão de optar pela opção mais radical foi a eficiência do espaço. Dado o tamanho típico dos arquivos na época, os clusters de 32kiB já eram um grande desperdício e os maiores teriam sido movidos.