Skimming SDFat's ExFat backend... The architecture is very similar. There must be differences, but glancing at the code said differences aren't very noticable.
And there's a backend which dispatches to one of the 2 others.
Then there's code shared between these backends, including abstractions around Arduino's stdlib, macros for when the file was compiled, a date type for attaching timestamps to FAT files, some debugging utils, fast reading/writing numbers (possibly via Assembly), ...
1/2!