There is NIP-45 for counts, but it's not widely supported and it's quite cumbersome for relays as it probably requires a separate tags table, and some indices as well.
I know because I've built my own.
https://github.com/pippellia-btc/nastro
Anyway, I kinda agree, adding too much features to relays reduces one of the best feature of nostr: simplicity.