I think it's important to note the distinction between quickly locating files based on their file attribute metadata, vs. the content within the file.
I'm conscientious about naming and organizing my files, so most of the time I can search based on names and directories and get the results I seek.
But if I'm looking for a particular term, or phrase, within the trove of mailing list archives and articles I've kept, I don't think any of the three are particularly strong, since all they do is return a list of files, which can be overwhelming.
Let's say I want to look for an old contributor named "John Doe" within my mailing list archive. What Spotlight returns is a list of 1600+ text files, which I'd either have to randomly open, or Quicklook through. Not gonna do that, and not really much help. EF can also include Content in its search, but suffers the same problem. Dunno about FAF, but I suspect the same.
What would be even more useful is a tool that not only helps find the files, but also presents the relevant data match, and provides context.
There used to be an app called
SpotInside (linked only for reference) that would present a list of files, and incorporate a viewer that would highlight the search term. It was written during an earlier age of OS X, and is abandoned.
And with AI™ promising the capability to index photos and allow natural language search, it would be nice to see that accessible at system level, not just within Apple's Photos app.
In the end, none of these tools are mutually exclusive; they can all work together, simultaneously, and complement each other.