Virtualization, which is one of my main use cases, works but is far from perfect. FreeBSD 11 improved things - in particular, UEFI graphics exposed over VNC makes installing Windows less painful (however, I couldn’t get networking working in the guest so it wasn’t terribly useful). One huge miss is that UEFI variables aren’t persisted across guest reboots, so it’s entirely possible to install a system and not be able to boot it without issuing UEFI commands.
I really like the clean split between base system and 3rd-party software. However, I whole heartedly agree that managing 3rd-party software is a mess. Plus, thanks to the ABI issues, doing major version upgrades is kind of scary. I’ve never had an issue with a major version upgrade, but doing it scares me every time.
Finally, there’s one huge issue that FreeBSD finally fixed in 11.1. The kernel was not compiled with IPSEC in 10.x, and in 11.0 they compiled it with IPSEC but not IPSEC_NAT_T. It took until 11.1 for IPSec VPNs to finally be usable out of the box.