It's quite simple really. On BSDs you tend to use ports to keep your filesystem tidy, but the moment you need something that's not already packaged you either a.) package it yourself b.) the build system is complex and thus you don't package it properly and make a bit of a mess on your filesystem.
So while BSDs might have slightly better FS layout as far as separation of user & system software, in the end you'd probably end up with a bunch of untracked files outside the system's software manager, no matter if you're on Linux or BSD.