En realidad, a lo largo de los años hubo varias variantes de "FAT16" con límites diferentes, pero consideremos la versión que persistió desde "compaq DOS 3.31" hasta Windows 95.
Los volúmenes FAT se dividen en grupos. Cada grupo está compuesto por una potencia de dos números de sectores. El número de sectores por clúster en FAT16 se almacena como un número con signo de 8 bits. Entonces, el máximo de sectores posibles por clúster es 64.
Los números de clúster se almacenaron como un valor sin signo de 16 bits. Limitar el total de clústeres a 65536. Multiplique eso por los sectores máximos por clústeres y obtendrá un límite de 4194304 sectores.
El tamaño del sector (lógico) de los discos duros es de 512 bytes. Multiplique eso por el límite en el número de sectores mencionados anteriormente y obtendrá su límite de 2GiB. En principio, un medio con tamaños de sector más grandes puede soportar un volumen FAT16 más grande, pero no creo que esto haya sucedido en la práctica.
Windows NT cambió la interpretación del campo "sectores por clúster" a 8 bits sin signo. Esto permitió una partición 4GiB FAT16 con sectores de 512 bytes (y teóricamente más grande en unidades con sectores más grandes). AIUI Windows 98 agregó soporte para leer y escribir tales particiones, pero no pudo crearlas y sus utilidades de disco no pudieron repararlas.
Ciertamente habría sido posible realizar ajustes relativamente menores en el formato del sistema de archivos para admitir clústeres más grandes y, por lo tanto, volúmenes más grandes. Sin embargo, MS decidió optar por la opción más radical de pasar a un índice de clúster de 32 bits con Windows 95 OSR2 que produce FAT32.
Creo que la razón para optar por la opción más radical fue la eficiencia del espacio. Dado los tamaños de archivo típicos en ese momento, los clústeres de 32 kB ya eran un desperdicio y los más grandes incluso se habrían movido.