-P sets local properties, but resets received properties to defaults. This is particularly troublesome for properties that can't be set after creation, and can leave some nasty surprises (if say, some filesystems inherit setuid=on and should be explicitly set off). Quite astonishing when you explicitly tell zxfer to make source and destination match and they don't, especially when zxfer spits out no indication that it didn't comply, even though the man page does say that only local properties are honored.
# zfs get readonly zroot/var/empty
NAME PROPERTY VALUE SOURCE
zroot/var/empty readonly on received
# zfs get readonly storage/backup/zroot/var/empty
NAME PROPERTY VALUE SOURCE
storage/backup/zroot/var/empty readonly off inherited from storage/backup/zroot
-P sets local properties, but resets received properties to defaults. This is particularly troublesome for properties that can't be set after creation, and can leave some nasty surprises (if say, some filesystems inherit setuid=on and should be explicitly set off). Quite astonishing when you explicitly tell zxfer to make source and destination match and they don't, especially when zxfer spits out no indication that it didn't comply, even though the man page does say that only local properties are honored.