creating (and updating) the patterns is up to the user. the client just need to filter messages using them. Users are smart, they can find out the patterns and type them in in a config screen or something. It's useful not only for spam, but for filtering unwanted content. And it's entirely up to the user to do so. The client wouldn't be bloated at all, just expand the current mute list to include words and patterns along with npubs. (i did a plugin like that for my strfry relay and it was less than 5 lines of code).
I think this would make the client overly bloated, and users would need to constantly update the mute rules.
I think filtering spam through WOT or https://vertexlab.io would be more effective
Discussion
The filtering code can indeed be no more than five lines. However, the client also requires a user-friendly settings page for interaction.