One aspect I don't understand is why Reddit allows new accounts to vote from the beginning. You don't even need to verify an email address, you can just start voting (unless they're doing something sneaky and ignore those votes).
I'm comparing this to Stack Overflow, where you need 10 reputation to vote. This is a pretty trivial barrier, but it does mean that you need to put more effort into each sock puppet to be able to commit vote fraud. You also can't have "invisible" socks all that easily, you generally need to post something to get the upvotes for your socks, which results in more obvious patterns that users, moderators and automated systems can detect.
Fighting vote fraud when it is that easy to create new socks that can vote seems like a pretty hard problem to me, especially on the scale of Reddit.
On the other hand, requiring reputation could incentivize spamming and worthless posts. For example, if you already have an automated voting bot, why not make it upvote your new bot accounts to transfer "rep" and allow more upvotes?
That is one of the things I meant by "more obvious patterns". That works of course, but you also create connections in the other direction now as well for your vote fraud.
There is another effect that probably doesn't apply to Reddit, but on Stack Overflow it can be pretty noticeable if you upvote crappy posts by your socks too much, and someone will investigate.
I'm comparing this to Stack Overflow, where you need 10 reputation to vote. This is a pretty trivial barrier, but it does mean that you need to put more effort into each sock puppet to be able to commit vote fraud. You also can't have "invisible" socks all that easily, you generally need to post something to get the upvotes for your socks, which results in more obvious patterns that users, moderators and automated systems can detect.
Fighting vote fraud when it is that easy to create new socks that can vote seems like a pretty hard problem to me, especially on the scale of Reddit.