directory versioning: this is one historical weakness of early RCS systems, as well as support for binary formats. It is funny that it is not quite relevant for path space branching systems, or at least doesn't bear the same meaning as for traditional versioning at the file grain.
ability to branch/merge: this strikes me as a rampant overspecification. Granted: some merging is needed anyway, but the need is often overstated, because of common practices publishing to a physical branch (main or delivery)