I think this is more likely to get implemented at the relay level than at the client level. There will be a marketplace for different sorts of relays with different filters and algos. Users will use their relay list to tailor their experience.
Discussion
That's a really good point, however I don't understand how it would function if I'm connected to relays with wildly different use cases at the same time.
Maybe you can have different "sets" of relays you connected to, easily togglable, based on hoe you want to use the protocol.
If you're connected to any relays that forward all events, you'll see everything forwarded in your global feed.
There is some filtering at the client level with certain clients.
With Iris for example, you can choose to filter the global feed based on 1-6 degrees of following separation from your npub.
Filtering for blocked people as well.
To me, it seems like this is more of a UI tweak. Especially since filtering already happens some locally. An option that a user could turn on or off depending in their individual usage.
I think I'm carrying some baggage from my years as a more traditional web developer, this protocol flips a lot of those ideas on their head and maybe this is the wrong way to think about these new problems in this new paradigm.