I have no idea how the feature is implemented in MacOS X Lion but I would do it with multiple file streams, with a simple addition of an API which makes one of the streams the "default one". This way, new file version creation is simply a combination of "create new stream" + "make it the default one" + "write data as usual to the file".
Ironically, Microsoft's NTFS had multiple file streams probably since it was first created, but no serious applications use it (maybe because it lacks an easy API?). Unix file systems traditionally don't implement this feature, but ZFS might be in an ideal position to implement it, and not only for whole-file-copy versioning but it could also be integrated with its COW and deduplication, writing only modified file data.
[for information completness, some ancient file systems like the VMS's had file versioning, and the ISO9660 file format for CD-ROMS have a similar implementation, but that feature was essentially lost for mainstream systems until now]