I can’t help you with your first two questions, but I’ve been using it in heavily multi-threaded applications for a long time. If you compare it to FatFs, for example, FatFs has some support for “re-entrancy” or thread safety, but it does not appear to have sufficient FAT and directory locking in FatFs to make operations like f_mkdir, f_chdir and f_getcwd thread safe, whereas FreeRTOS+FAT does.
One possible semantic difference might be regarding performance. I can imagine a “thread safe” implementation that just serializes all access to the file system with a single mutex. However, this would perform poorly in a multi-tasking, multi-processing, multi-“disk” environment; you’d really want finer-grained locking that maximizes concurrency.