As a general rule, you don't store artifacts in your version control system, because you should be able to rebuild them from source as needed.
One alternative is to upload your artifacts to a known location, which can be backed up (or something like Amazon S3, which has redundant storage). Another, usually better, alternative is to use a repository manager, such as Nexus.
In practice, if you have a centralized version control system it doesn't matter very much whether you store artifacts in the repository or not, as long as you structure your VCS so that users don't have to download them. With Subversion, for example, you can have a separate tree for artifacts (along with trunk/branches/tags).
However, if you're using a distributed VCS, like Git, you definitely don't want to store artifacts in the repository. The reason is that you download the entire repository with Git, including all obsolete versions of all files. That can take an unpleasantly long time even if it just holds source code (try checking out the AWS Java SDK for example).