OK!
With pkg_add you may define an
alternative directory PKGDIR to save the packages to.
While PKG_PATH is where pkg_add expects to find the packages.
The value of the PKG_PATH is used if a given package cannot be found.
The environment variable should be a series of entries separated by
colons. Each entry consists of a directory name.
Hence, $PKGDIR has to be added (or prepended) to the directories list, default /usr/ports/packages.
Why use an alternative to PKG_PATH ? Errr ... Yup! PKGDIR can be a CDROM, files saved rw to PKG_PATH, PKGDIR a ro CDROM, or the other way, and vice versa.
While PACKAGESITE should be set to a "mirror_close_to_you" for remote install.
PACKAGESITE only understands URL and fetch, while PKG_PATH only reads directories.
Now I understand why there is a subdirectory /usr/ports/ports-mgmt in FreeBSD tree.
Yeesh! Glad my default OS is OpenBSD