Re: A big mistake, this
The FreeBSD update program has a number of issues . For example its IDS can tell you what is wrong but no good way to fix any problem it finds. On a system upgraded since the 4.6 days, there are 8548 things in IDS ids report and most should have been fixed with the last update but weren't. When the 3diff breaks, it can break bad and the system should allow a "1) edit, 2) use old one, 3) use new one" type options. It is also a real pain to use on systems that don't have direct internet access or have highly locked down DNS. A "pkg install RELEASE-15.0p0" before running freebsd-update would be very helpful. Sometime between 14.0 and 14.3 it seemed to get much slower on major release updates. Every version update I think about writing a '-r +' and '-r ++' patch for it.
There are also issues of modern security that conflict with the BSD (and other FOSS os) way. Logs should be on a write only file system yet the base config wants to rotate and compress logs even if they are on a compressed write only file system so we have a local pkg that fixes that. Security guidelines require we remove the compilers. A pkg security-purge-compilers is easy to build.
Long ago Sun OS used to be made up of several packages so things like 'make' were in SUNWsprot which was optional and 'cat' was in SUNWcsu which was not and I would be happy with that sort of thing today. I would also be happy with redefining '-a' from 'all except pkg' to 'all non-system packages' and define '-s' for 'all system packages but no user packages' so pkg upgrade -s would bump the OS leaving userland, but uprade -sa would upgrade everything and upgrade '-a' would be useful for people with hardware with questionable support.
I use FreeBSD for most systems because I think it is the best OS for my needs.