What many people forget is adding layers and layers and layers and layers for “performance”.
By the time you get to asking relays that have it, you spent more time on other useless caches compared to waiting for relays.
Use NostrDB by nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s which is already optimized for client caches and can work multiprocess, and then ask every relay you think might have it.