Para o subversion, você pode ter um repositório local - basta criar um localmente e pronto. Você pode então sincronizar regularmente com um repositório remoto usando o svnsync. Ou faça o contrário, use um repositório remoto e sincronize localmente (como faço para backups).
Svn manipula binários bem, ou pelo menos tão bem quanto qualquer outro SCM. O problema com os binários é que eles são difíceis de diferenciar, isso não é uma falha com o svn, apenas uma propriedade dos binários.
Git ou Mercurial (ou Bazaar ) soa mais apropriado para as suas necessidades, já que eles são distribuídos SCMs em que você opera em um repositório local o tempo todo, e Em seguida, envie as alterações para um repositório remoto. O Mercurial é provavelmente o melhor para o Windows, pois você tem boas ferramentas de GUI; Bazaar é um desenvolvido pela Canonical e Git por Linus. Isso é sobre todas as diferenças entre as quais alguém se importa :) Existem comparações na web - além do git não sendo nativo do Windows, o Mercurial é provavelmente melhor, já que suporta mais de "o que você tem é o que os usuários remotos têm", enquanto que o Git é mais "o que os usuários remotos têm", o que exigirá mais esforço de você Dadas as suas necessidades (ambos, é claro, podem compartilhar todos ou subconjuntos, mas é mais fácil para o Mercurial ter um subconjunto restrito do que é para o Git compartilhar tudo)
Se você quiser usar "ambos", poderá ter git-svn ou SVK que adiciona funcionalidade distribuída ao SVN.