Hard links mostly work as you tell them to. You may need to set things up properly, but it's essentially the same thing being done.
>fdupes will not let you reconcile duplicates in snapshots on ZFS
Why not? The files are kept in a hidden folder in the base directory.
>ZFS deduplication is block-based
It is also live. You don't gain Mich with offline block deduplication over file, though it is better. Live deduplication is a feature even if unnecessary for most.