I am a newbie to BSD, too
What I noticed is that if you go away from standard compiler settings, it breaks packages. I just added my arch like "COPTS?=-march=pentium -mcpu=pentium4 -O2 -pipe" and got compiler errors in a few packages.
That shows me, that there is no need to compile from source if I have to use generic settings. Doing an update with pkg_chk shows there is no outdated package in source or binary.