Creating a bug so this is not lost.
The automatic FAT type determination is broken.
$ truncate -s 2147483648 test
$ newfs_msdos ./test
newfs_msdos: warning, ./test is not a character device
newfs_msdos: 65519 clusters too few clusters for FAT32, need 65525
I believe the issue is the cluster detection mechanism (Line 334 to 351).
For instance, this works:
newfs_msdos -c 128 ./test
The lines are in sbin/newfs_msdos/mkfs_msdos.c