, that's due to how you mount the fs, and not because of the mkfs tool you use. In fact, you can quickly check that something formated with mkfs.msdos can be perfectly mounted as vfat because in fact both tools are the same.
$ dd if=/dev/zero of=foo.img bs=4096 count=10k
10240+0 records in
10240+0 records out
41943040 bytes (42 MB) copied, 0,0803099 s, 522 MB/s
$ mkfs.msdos foo.img
mkfs.msdos 3.0.2 (28 Feb 2009)
$ mkdir tmp
$ mount -t vfat -oloop foo.img tmp
$ mount|grep loop
/dev/loop0 on /home/i92guboj/tmp type vfat (rw)
, yes, both mkfs.vfat and mkfs.msdos are just symlinks pointing to mkdosfs, so they do exactly the same thing. mkdosfs supports fat12, 16 and 32 fs's but on a quick check of the source I haven't seen any specific check for the name of the argument zero, so both symlinks are equivalent unless I am missing something.
So, doing mkfs.msdos or mkfs.vfat makes no difference. However the driver for msdos and vfat on the kernel are not the same, so mounting them as msdos or vfat DO make a difference, because both drivers do have different capabilities.
I think that both symlinks exist just for convenience. Nothing else. They are 100% equivalent.