How about a completely different take on this: versioned clones? If someone really cared, you could eventually roll Windows-style versioning support in. For space-saving purposes you would want the clones to be as sparse as possible.