Almost all external USB hard drive and USB memory media/sticks come today preformatted with FAT32.
As far as I know the only advantage of the file system is the compatibility among OSes and devices.
Is it reasonable to reformat it with exFAT or even NTFS? How this would affect the performance and security?
Here is an article where extensive testing on usb drives comparing performance of FAT32, NTFS, and exFAT.
Conclusion from the testing:
As far as file system security goes, if you reformat to NTFS or exFAT you will gain File System Permissions on your USB drive. Which I have never had a need for on a USB drive, because I am the only person using the drive and I do not want to limit access to my data.
It's not only reasonable, but sometimes even necessary. FAT32 doesn't allow files >4GB.
As for choice between NTFS and exFAT. Well, neither vanilla XP nor vanilla Linux support exFAT, but they do support NTFS.
Security isn't affected at all[1], because someone can always plug the device into another machine (that ignores all the file permissions) and go to town on your data. Performance might be better, or it might not -- depends on the OS, filesystem, and hardware involved. Best to benchmark on your likely workload and see what works best.
[1] OK, if you're using an encrypted filesystem you can get better security, but that's not really in the scope of the question, and performance will almost certainly be adversely affected.
Slashdot: File Systems that Suck less?
Basically you don't want fat32 because you only get 2GB file size and it's non-journaling
Now if you want Windows/Linux/Mac support you're basically stuck with NTFS.
If you want Mac compatibility then you'll need http://www.ntfs-3g.org/. Same applies for Linux (You should have an ntfs-3g package available)
Caveat: The Mac ntfs-3g software has been a little flakey for me as far as permissions go and you can only run Time Machine from an HFS+ formatted drive.
So yeah until there's an agreed upon universal filesystem it looks like NTFS is going to be the fallback for some time.
To answer your question, is it reasonable to format with NTFS or exFAT?
Like you mention, this depends entirely on what kind of Operating Systems are going to be looking at this drive. If you are talking about Vista+ then NTFS is just fine. While other OSes (non Windows) can read NTFS drives, I'm not sure their support is as good as FAT32.
exFAT was recently added to the mix as a way to workaround some of the limitations of FAT32.
There are some other considerations as well. Windows 7 has support for BitLocker ToGo which allows for full hard drive encryption and mounting using a simple password. It's Read/Write on Windows 7 and then read only on Vista and XP and there is no cross platform support.
If what you need is lowest common denominator, I would go with FAT32 and deal with the limitations. If you are just using Windows XP+ then NTFS. If you are using Vista+ then exFAT.
You may also be interested in UDF (Universal Disk Format). See UDF OS compatibility table on Wikipedia.
The only downside to UDF 2.01 is that there is no native write support for Windows XP (at least without third party utilities). However, writing with Windows 7 and later are natively supported.
I recently found myself researching this very topic, and I wrote a script to automate the process of formatting in UDF. See format-udf on GitHub.
Compatibility across OSen is indeed one of the major factors in choosing a filesystem. The other is the features of that filesystem, like large (>2GB) file support and journaling. You'll have to decide what's usable to you based on how you're going to use that filesystem. FAT32 is predominant because it's kind of the lowest-common-denominator of filesystems. Depending on your OS you might also want to look into on of: NTFS, ext3, ext4, or even jffs2.
I propose NTFS it is visibly faster than FAT and supported on most up-to-date operating systems. But, at least at windows XP, you must be more careful and always unmount disk, because usb drive can be formated to NTFS only, when optimize-for-performance option is selected.