The block could still be rewritten from the view of zfs as long as it does not update the last-written timestamp (does zfs have this?). I was just describing how it would look like from the birds eye.
Compression settings are set at a per dataset level, so applying this to only some files in a dataset isn't practical.