It would work like this: by default, nothing is moderated. Instead, every post/tweet/etc. has to be labeled by the user. There can be an auto-suggestion feature to make it a quick process.
Then, other users can choose which tags they want to view or hide. If you don't want to see content tagged with X, no problem. If you do, you can.
In my mind, this would solve a few problems:
1. Justifiably ban people that try to circumvent the tagging system. You aren't determining whether their speech is allowed or not, merely ensuring that they follow the very basic rules of the site. This is much simpler than relying on an AI to interpret a nuanced comment and then moderate it.
2. Allow everyone to say whatever they want. No one will feel silenced.
Again, I'm sure there are holes in this idea, but I think it might be a better approach.