IMHO,
subversion is the best way to go. It is a replacement for cvs, it handles binary content ,which cvs doesn't, and has a client API. Subversion also use WebDAV which is an extra.. The only downside is installation becomes harder. You can have versioning optional and that solves the problem of installation.
WebDAV is an excellent protocol for CMS and snipsnap can benefit from it.
If snipsnap wants to build their own versioning system on top of a relational database, have a look at
Redhat enterprise CMS