Rixstep has introduced Rixtag, which does it kinda how I envisioned it:
http://rixstep.com/1/20170808,00.shtml … test drive download via ftp:
http://rixstep.com/4/0/rixtag/
The app doesn't use the macOS default tags (OpenMeta: com.apple.metadata:_kMDItemUserTags), but creates its own extended attribute com.rixstep.Rixtag. It's an xml plist, converted to binary plist and written to a xattr called "com.rixstep.Rixtag" as hexadecimal. Since the original content is a plist, one xattr can contain as many tags as the user wants, e.g. <string>movies</string> <string>war</string> <string>english</string> <string>2017</string> <string>4k</string> <string>Nolan</string> etc.
In the Rixtag app the user just selects the tags he wants, and he gets all the associated files, no matter their location. Problem is: it's a dedicated app, it's not part of the file browser/manager. But the Rixtag app uses some form of database, maybe something related to locate/find, coupled with a scan for only the com.rixstep.Rixtag attribute. It's definitely not md/spotlight, because in Rixtep it seems that the user needs to refresh the database. (With Spotlight the system would do that automatically.) EDIT: afaik, you can build alternate additional locate databases, i.e. you don't need to rely on the one at /var/db/locate.database
So it seems that in order to have speed with tags, you can't use Spotlight and macOS default Finder tags, but some equivalent of the find/locate command, a proprietary extended attribute, and a dedicated scan only for that proprietary attribute. Transposed for Nimble Commander, NC could basically run the occasional update in the background with a decent nice factor. Then the user only needs to open a "tag window" or "tag tab" in NC, and it has all files tagged with the proprietary xattr, and then it's standard search operation, like searching for filenames, only here searching for tags, plus an option to untag a file. (Might need some tweaking to search for several tags.) In the normal file system the user would then only need a command (menu or contextual menu) to tag a file (with selection list or input option for new tag title), and then it would pop up in the "tagged file list".
(Maybe some food for thought.)