When unzipping an archive, the file permissions are not restored properly (but they are by unzip from ports). More precisely the execute bit seems to be set
unconditionnally for non executable files.
use the following workarounds:
1- delete the /usr/sbin/unzip executable.
2- create an alias and modify shells/perl/.. scripts to force use of port unzip.
How-To-Repeat: create a zip archive, unzip it and compare.
This is a libarchive issue.
This is an issue in libarchive, see https://github.com/libarchive/libarchive
Fixed in all supported versions of FreeBSD.