(ie a look at "cutting questions" that describe different design approaches.)
Is history stored with working directory (bk, rcs, darcs), or separately (cvs, baz)?
Storing in the working directory may be simpler in some respects; it's one less concept people need to learn. On the other hand people typically have more working copies than branches, and this approach means having more copies of the history.
Naively, storing everything in the working copy can mean that you keep multiple copies of the history, which would use a lot of disk, or
Can you change recorded history (darcs); only do this through a special mechanism (cvs, svn); or not do it at all?
Being absolutely able to reproduce any point in time reliably is highly attractive. On the other hand, sometimes people commit something (e.g. confidential information) that really should not be recorded. And at a smaller level people might just commit the wrong message.
Can you edit any file in a working copy (cvs, tla) or must you specially mark the before editing (rcs, bk)?
There are two reasons to mark files for editing. One is so that people can be notified that a file is about to
Can you see how a patch got to its current destination? As far as I know only arch can do this -- you can see what branches it incorporates changes from. Well, kind of; not in an entirely straightforward manner.
When patches from other people are integrated, can they be rolled up into larger patches (arch) or do they retain their individual identity (bk, darcs)?