zfs will never know the true usage, because the filesystem (VMFS) doesn't have any way to inform the volume (ZFS) that a block that supported a deleted file is no longer in use.
There is a feature to do this (the UNMAP command), but ZFS does not yet support this SCSI command.
Without UNMAP, you are out of luck.