Here's the problem.
Let's look at something non-controversial like Doctor Who. There's /r/doctorwho, which allows posts like "My cat pretending to be Matt Smith" and "My girlfriend made me this bow-tie - look how cute it is on my cat!".
Then there's /r/gallifrey, which only allows posts about Doctor Who. Then there's a few others (/r/classicwho for episodes before the reboot).
Now, imagine if /r/DoctorWho banned criticism of Moffat. Obviously, all the Moffat haters would get banned, and go to /r/gallifrey. You'd suddenly have a large Moffat hating sub, and a large sub that couldn't understand why every other sub seemed to hate Moffat. These people wouldn't politely debate anything, because they'd get more upvotes and positive responses for attacking the other side than trying to be reasonable.
FWIW, I dislike Moffat, because I think Doctor Who works better in a more episodic format - long arcs don't work when the Tardis is in the mix. But that's not the kind of nuance you get when there's two subs that both have a bunker mentality, throwing bombs at the brainwashed idiots on the other side.
Anyway, reddit is not a "free speech" site. It's a site that lets mods do what they want, for their sub. It's architecture is not one that allows a free, civil discussion of ideas, so much as a place that encourages group-think. (And while you can blame the "SJWs", there were prominent "hate" subs, like Fat People Hate, that behaved the same way - it's just the way the site is designed and run).