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.