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.
Again, you're just ignoring what I said. I've managed tens of thousands of BSD systems for 25 years. I've never had anything installed that wasn't registered in the package database so all its files were uninstalled correctly. Yes, you literally do stick entirely to ports, creating a port when needed. Having a complex build system doesn't mess up your filesystem, it makes it take longer to create the port.
Good for you, but you can do exactly the same on Linux, so there's no advantage for BSDs there.
My myself have seen plenty of cases of people not having the time to create a package for a software they need now, but maybe the domain BSD is used in is less prone to needing software prone to that. Maybe it's just you being lucky.
However again, that's not a technical benefit. You can do exactly the same on Linux.
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.