I prefer to create an extra tree for my own or ported things. I leave /etc to the base system, and /usr/local to pkg. And then I have /ext/bin, /ext/libexec, /ext/etc, /ext/etc/rc.d and so on, and I add /ext/etc/rc.d to the startup directories, and put the configurations all into /etc/rc.conf.local.
So I have only very limited additions into /etc, and nothing but the packages in /usr/local, and keeping things clean is quite a bit easier.
And when I add some software, I try to write a proper rc.d script, move the interesting configurations into variables and put them into /etc/rc.conf.local. (That works well for my netgraphs, bhyve guests, various python- and rails-applications, etc.)
Finally, add /ext/src/... for some repo where these scripts are maintained and get installed via make, and a few years later one will still understand what was done and why.