What happens if a user has multiple accounts and keeps upvoting himself/someone else? Does that happen? Is there a system to stop it?
The system automatically detects votes received from a user, when they are given from the same user on a short period of time. Once the votes are removed, the reputation increase is removed as well; that means you will lose the reputation you got from those up-votes (and you would gain back your reputation, if those were down-votes).
Moderators can see suspiciously high levels of activity between users. This means that moderators are able to detect cases of cross-voting, where you vote a user's posts, and that user votes for your posts.
It could also be that it was not just a single user voting you. In some cases, it happened that a question, and its answers, received many votes right after a link to the question has been published on some social networks. As far as I know, in some cases the votes to those questions/answers have been removed; I don't recall if that was done automatically by the system, or manually by some moderators.
There are ways and methods that the SE Team and moderators have in place of detecting "sockpuppet" accounts. In the case an account is detected, it is merged into one account and any illigally gained rep is lost. And, just in case you though you could try it, account suspensions will happen, and have happened in the past.