I won't pretend to have read this entire thread -- it's huge -- so forgive me if I'm repeating something that's already been said. In addition to support of desktop/laptop systems in the sense of applications and driver availability, there's the issue of correctness of the code. Desktop/laptop systems get used in different ways than servers do, not a deep insight. I tried to migrate my four systems (three IBM/Lenovo laptops varying from very old to very new, plus a Lenovo workstation) from Linux to FreeBSD and while the system looks very nice (there's a professional feel to it that's missing from the rather chaotic Linux world), I quickly ran into kernel bugs that killed my systems, multiple times. One was in the ext2 support (my USB backup disks were, and now are, ext2 filesystems), another other I *believe* was in the USB stack (I had a system crash copying one backup disk that had been converted to UFS2 to another that had a freshly newfs-ed UFS2 filesystem on it). Despite my generally very favorable impression of the system (and familiarity with BSD going back to the 4.x systems on Vaxen), the unreliability was unacceptable and I retreated to Linux (this was fairly recently and involved FreeBSD 7.1).
I attribute this to my using corners of the system that are little-used by the mainstream FreeBSD audience, and thus have simply not been adequately debugged.
I would *love* to see FreeBSD try to compete for the desktop/client-side market. I think it has some great things going for it, but it's just not in good enough shape right now to challenge Linux on that ground, in my opinion. And I do understand that this is a huge effort and a bit of a Catch-22 (it's hard to make it reliable without a user community of critical mass and it's hard to get that community unless the system is reliable).
/Don Allen