> BTRFS will be able to do the same thing... one day.
It already can. btrfs sub snap does snapshots (and they work the same way), btrfs send/receive do the diffs, supports lzo/zlib compression and deduplication
The last time I tried Btrfs (which was about a year ago on ArchLinux) I found Btrfs snapshots to work very differently to ZFS. At least superficially as most of the guides I could find advocated using rsync to restore snapshots - which even now I find it hard to believe there isn't a cleaner solution.
Aside all of the positive things already mentioned about ZFS, one of the biggest selling points for me is just how easy it is to administrate. The zfs and zpool command line utilities are child's play to use where as btrfs felt a little less intuitive (to me at least).
I really wanted to like Btrfs as it would have been nice to have a native Linux solution that would work on root partitions (my theory being that Btrfs snapshots could provide restore points before running system updates on ArchLinux) but sadly it proved to be more hassle than benefit for me.
It already can. btrfs sub snap does snapshots (and they work the same way), btrfs send/receive do the diffs, supports lzo/zlib compression and deduplication