To accomplish this, one can simply use DosFS and instead of remapping the "DosFS_Read/Write" to "SDIO_Read/SDWrite", just use any function you have to interface to your external memory (FSMC?).

You probably understand that the only advantage of FAT(16/32) is portability to Windows machines? If you want to read or write data to ram, in an organised way, why not use a simple table like:
[FileNumber, PartNumber, AdressStart, AdressStop]
Where you can write to a large buffer, update the file end. If you are writting to an older file, then you can use the part number to implement a fragmentation management.