> Wouldn't Btrfs's 'COW' design simply mean that partial writes are just discarded?
That only works if you always write a full stripe, which is generally not the case. ZFS uses variable stripe sizes to achieve this for data writes, but the minimum stripe size tends to be rather large, depending on how many disks you have in your RAID set.
If you spread every filesystem block across all disks the way ZFS does, random read performance suffers dramatically. Every disk has to participate in every uncached data read. Minimum FS block sizes go up with the number of disks, and so on.