AFAIK the first 16 records must be always at the start of the disk, they can't be moved
Only the bootblock is always at the beginning of the disk. The bootblock is the first 512 bytes of the disk, and amongst other things contains the location of the MFT. The bootblock is not part of the MFT and does not have a filename. So, the first 16 inodes in the MFT do not have to be at the start of the disk, they can be anywhere.
The Microsoft defragmentation API on Vista can move everything of the MFT except for the first 16 inodes (usually 16 kilobyte). I don't know why. You would say that it should be possible to move the entire MFT, especially on a disk that is not mounted, but perhaps it is a limitation of the NTFS filesystem drivers. JkDefrag version 4 will be able to move the entire the MFT, except for the part that contains the first 16 inodes. This will become a fragment.
Maybe JKDefrag should reflect that (showing $MFT with 2 fragments green).
Yes. Version 4 of JkDefrag will completely ignore that first unmovable block of the MFT, and will only count and show fragments after that.