I think to get a size of -4 you would be trying to read a varlena
pointer pointing to four nul bytes. I bet if you run dd on the
corresponding block you'll find a chunk of nuls in the page. That
perhaps makes sense with ZFS where if a new page was linked to the
tree but never written it would be an uninitialized page rather than
the old data.
I'm becoming increasingly convinced that there are a lot of storage
systems out there that just lose data whenever they crash or lose
power. Systems that are supposed to be better than that.