That just becomes a game of whack-a-mole with permutations and regular expressions. As noted in comments, spammers very quickly adapt to changes in the blacklist.
Keto, for instance, becomes:
... and so on. Even with a lot of optimization, each entry in the spam bucket / bad word / bin list causes a little more work to be done anytime there's untrusted data to sanitize. While we can scope blocks so that certain character combinations can be restricted in titles or tags and more, it's still expensive.
So, any strategy where that's our first move just ends up creating this giant boneyard of mangled strings that will eventually result in a noticeable impact on performance. We do occasionally use the blacklist for this, but it's almost never as a first option, and is always temporary.
Smoke Detector does a great job of making these vanish very shortly after they appear, which is what matters most to keep things tidy and keep our weight in search engine indexes. The honeypots our spam system uses are also tremendously effective at stopping these things soon after they start (honeypots are questions that get more than a few spam suggested edits over a period of time, so the system actively holds long grudges against entire networks it catches making subsequent ones).
As long as you flag it as spam it'll be handled. While spam bucket checks does help stop the worst stuff before anyone has to see and identify it, most of the stuff spammers get paid by the piece to plant requires someone to see it and identify it at least once before we train on it, which has the side effect of a few remnants being left around.
\bketo\b
currently has 83 false positives on post bodies, predominantly from a few health and chemistry sites, but also a number of Stack Overflow questions where the code coincidentally handles data for nutrient sites or whatever.\bketo\b
in question titles has 6967 true positives and only 14 false (!)