Presumbably there's similar issues with the "array of blocks/bytes" idea, when it comes to disks themselves. It shows with Flash, where it'd be nice to let the device know blocks are unused. Perhaps with bad block reallocation to on disks, which might have unpleasant consequences for journal files (without barriers).
It used to be, that disks were always damn near full, so you didn't really gain anything by not doing a raw partition copy when transfering data from one disk to another.