I found the reason for a FETCH_PACKAGES bug, linked to pkg_add optimizations:
with faster package updates, unchanged files would mean pkg_add would not always read to the end of the archive. Unfortunately, this also applies to symlinks at the end of the plist, as the meta-info is enough, AND this would also apply to grabbing newer versions of installed packages. I've committed a fix which knows a bit too much about internals, I might refactor it later, but this should get rid of the bewildering looking for foo-1.0 ... found followed by an error due to NOT copying the incomplete file which would be removed by caching...