On FreeBSD, I use ports mainly because I find that if I use packages there is something not compiled into a critical package I need so I just stick with that, plus I been using the ports method so long I'm probably biased.
As for OpenBSD...I hosed one nicely working system once I started try to compile my own stuff on it
Probably had more to do with trying to use a package that was in current or something along those lines.