Nada impede que se formate um cartão maior com 2GB e se use só os 2GB. O problema é que a diferença entre os padrões SD, SDHC e SDXC pode tornar o cartão incompatível no Arduino. Todo cartão compatível com o padrão SD maior que 2GB é SDHC. Todo o cartão compatível com o padrão SD maior que 32GB é SDXC.
A FAT16 só permite partições de até 2GB porque o tamanho máximo de cada célula (ou cluster) no mapa de alocação é de 32KB. Como o sistema usa 16 bits para endereçar essas células (daí o nome "File Allocation Table 16 bits" ou "FAT16"), o tamanho máximo que pode ser mapeado é de 2GB (32768 bytes por cluster x 65536 clusters).
O MSDOS 6.22 trouxe uma implementação não padrão da FAT16 que permitia clusters de 64KB, mas o número de clusters não podia ser maior que 32767, mantendo o limite de 2GB. Esse formato não é utilizado no driver FAT das versões posteriores do Windows e pode representar problemas de compatibilidade. Além disso, clusters grandes representam um enorme desperdício de espaço para arquivos pequenos. Um arquivo de texto de 1KB em um sistema com células de 64KB vai ocupar 64KB de espaço, porque não é possível alocar menos de uma célula ou frações dela para um arquivo.
O padrão FAT32 não só permite 2^32 clusters, mas também permite que cada cluster tenha até 64KB e outras mudanças. Mesmo assim, o tamanho de um único arquivo não pode ser maior que 4GB, daí não ser possível salvar imagens de DVDs ou BLU-Rays em HDs externos formatados em FAT32.
Nos cartões SDXC, o padrão é exFAT (FAT de 64 bits). Este padrão é proprietário da Microsoft e não pode ser utilizado sem autorização dela e sem pagamento de royalties. Não há biblioteca para esse padrão (e talvez nunca tenha em razão do licenciamento). Muita gente está utilizando os formatos de arquivos do Linux porque são abertos (ext2, ext3, etc), mas os fabricantes só estão preocupados com o que traz dinheiro para eles (Leia-se: Windows). Essa é uma briga que vai causar grandes problemas de compatibilidade no futuro.
Há algumas bibliotecas que permitem usar FAT16 num cartão de 4GB, mas essa opção não é padrão e pode não ser reconhecida corretamente no Windows. O Linux é mais flexível e pode reconhecer o cartão normalmente. Há risco do Windows continuar a gravação de um arquivo maior que 2GB repetindo as células da posição maior que 2GB no início do disco. Isso faz com que o resto do arquivo seja gravado de novo nos setores iniciais (wrap), assim danificando o conteúdo do cartão. Isso é muito comum em cartões SD, Ipods e pendrives falsificados porque o controlador do dispositivo "mente" quando informa a quantidade de setores disponíveis.
Maiores informações podem ser consultadas aqui:
http://en.wikipedia.org/wiki/File_Allocation_Tablehttp://kb.sandisk.com/app/answers/detail/a_id/2520/~/sd%2Fsdhc%2Fsdxc-specifications-and-compatibility