It's not bizarre, it's just that you don't actually understand what is in a snapshot and what "used" means. Do some more reading about zfs snapshot sizes.
Here's a quick explanation:
https://blogs.oracle.com/observatory/entry/understanding_the_space_used_by
To most people who have never encountered Oracle's particular interpretation of the word,
used is the adjective form of the third person present
uses. Linguistically,
0 bytes used ≡
the filesystem changes referenced by this snapshot occupy 0 bytes on the filesystem.
I think if we used a non-IT example, the bizarre-ness of ZFS' nomenclature would be clear. Imagine we have two construction workers, Bob and Jeff, who share a miter saw between them. Our company inventories tools by person so our inventory shows a miter saw with the same serial number listed under Bob's tools and also under Jeff's tools (like two snapshots referencing the same blocks of data). No person would say,
the number of miter saws used by Bob is zero, and the number of miter saws used by Jeff is also zero, and justify that because firing Bob or Jeff wouldn't free up a miter saw. That is what ZFS is doing here.
ZFS' use of the word
used is contrary to standard English
and contrary to established precedent (even in ZFS) where two different names point to the same data in the filesystem (e.g., hard links). Even in ZFS two file names that point to the same filesystem object will each report their size to be the size of that object even though deleting one will not free any disk space at all.
Code:
[root@freenas /mnt/pool/foo]# dd if=/dev/random of=myfile.dat bs=1024 count=10240
10240+0 records in
10240+0 records out
10485760 bytes transferred in 0.436770 secs (24007512 bytes/sec)
[root@freenas /mnt/pool/foo]# ls -lh
total 20493
-rwx------+ 1 root wheel 10M Jan 1 10:28 myfile.dat
[root@freenas /mnt/pool/foo]# ln myfile.dat myfile2.dat
[root@freenas /mnt/pool/foo]# ls -lh
total 40986
-rwx------+ 2 root wheel 10M Jan 1 10:28 myfile.dat
-rwx------+ 2 root wheel 10M Jan 1 10:28 myfile2.dat
[root@freenas /mnt/pool/foo]# df /mnt/pool
Filesystem 512-blocks Used Avail Capacity Mounted on
pool 13986032957 3069 13986029888 0% /mnt/pool
[root@freenas /mnt/pool/foo]# rm myfile2.dat
[root@freenas /mnt/pool/foo]# ls -lh
total 20493
-rwx------+ 1 root wheel 10M Jan 1 10:28 myfile.dat
[root@freenas /mnt/pool/foo]# df /mnt/pool
Filesystem 512-blocks Used Avail Capacity Mounted on
pool 13986032957 3069 13986029888 0% /mnt/pool
In conclusion, ZFS' use of the word
used is not consistent with how the word is formally defined, nor with how it is used in everyday speech. It is also internally inconsistent with how ZFS treats other cases where two names point to the same filesystem object. That makes ZFS' use of the word
used out of the ordinary, and as illustrated by the non-IT example, strikingly so. When something is strikingly out of the ordinary, it is bizarre by definition.