Earlier quoted context omitted.
HN isn't all that different, so it's probably about more than just reddit. For example, you can post the same remarks criticizing functional programming in a post about C# or Java and get upvotes, while the same post in a Haskell discussion will be downvoted. You can try the experiment yourself to verify it. This applies to companies as well - you will be upvoted for pro-Microsoft or anti-Google posts in a news topic…
It's significantly better in my experience. It's not perfect but you can actually have a plurality of opinions on a subject. I think the fact that the community is tighter and that low karma accounts can't actually downvote help massively. Also no visible scores which reduces the "gaming" aspect. I kind of wish HN would go a little further still and ration downvotes for everybody, it shouldn't be something you throw…
There are several factors that ensure better Signal to Noise ratios in communities.
Protective Moats, specific technical subject matter, for example.
Essentially it boils down to difficulty to engage, or non trivial effort required to engage.
The factors you mentioned have little impact on the behavior of the sub, which is mostly influenced by the people and norms of behavior, over the UI.