Why write a new port system (Portage) instead of using BSDs version?
In one sentence, because Portage is much better in so many ways. One of the design philosophies of the .ebuild syntax was to make it an analog of what you’d type to install the program manually, thus making Portage very easy to learn and modify to your needs. We also have OpenBSD-style “fake” installs, safe unmerging, system profiles, package masking, a real dependency system, and lots of other good stuff.