FreeBSD can run one of several desktops. It doesn't have a desktop though - they are all independent third party desktops. It is a subtle distinction that only rarely matters
Yep, and there are (were? It's been a while since I checked) even "distros" of FreeBSD that are specialized for desktop use. The main downside of FreeBSD is that it doesn't dumb itself down to appeal to the masses, so while it's great for experienced users it's a bit painful for newbies.
Last time I used FreeBSD, I found it more inherently user-friendly than Linux distros, mainly because it has a very nice handbook (linked in a sibling comment) with realistic examples. Also seems to have more things built in.
What made FreeBSD harder in the end was just that fewer people use it, so tons of third-party software supports Linux better, and it's easier to find online answers.
Documentation-wise it's miles ahead of Linux, mostly because it's developed as a single project rather than a bunch of pieces. Whenever I need to look up anything POSIX in a man page, I always read through FreeBSD's man page first.
Flatpack also ain't it either. Sure flatpack solves a few issues, but it introduces others and so the problem isn't solve. Maybe it will be eventually (though the lack of maintenance implies it won't be), but today it isn't solve.
I found ports works very well myself - everything kept up to date with upstream, and they take care to rebuild everything all the time so you rarely run into library ABI issues.