I've never really used NetBSD (I've installed it a couple times, but never used it much), but I've used OpenBSD and FreeBSD quite a bit.
It's probably not what you'd want for a desktop system. It will run all the server stuff you listed just fine. The system compiler is gcc, although it likely comes with BSD make, so you'll want to install GNU make for compiling some software (usually it doesn't make a difference, but some projects rely on GNU make).
Packaging is similar to Slackware's package system (or at least how it used to be - I haven't use Slack in years) - it's tarball based. There is the pkgsrc system where you can automatically download and compile software for the system (based off FreeBSD's port system, which I rather like). You can also download and recompile the entire OS if you want (the infamous "make world" on FreeBSD, although glancing at the docs it seems NetBSD doesn't use that exact term).
Binary updates are generally available for security or bugfixes. The system doesn't do this for you (unless you recompile the system from source regularly - see below), so you have to check the errata page often to see if you need to update something. If you do, it's generally as simple as downloading the new binary and installing it using the system install tool.
Source updates are done on CVS trees - you track one of the trees (STABLE or CURRENT) and you get updates. The BSDs differ a bit where this is concerned, so I can't really give any specifics, but on FreeBSD and OpenBSD it's relatively painless once you get it set up. There's a utility to help you update your configuration files in FreeBSD and OpenBSD, so I assume NetBSD has something similar.
It supports CARP if you want to do clustering. I'm not sure if that will cover your needs, but if not, OpenBSD or FreeBSD might. I can attest that netbooting OpenBSD is cake - my firewall runs diskless.
As far as my experiences, well, there's a bit of a learning curve. It's easier if you've worked with Slackware or some other source-heavy Linux distro. The BSDs have a very unified feel to them, probably because there's no separation of userland and kernel development - the base system is developed as one unit, not a bunch of different projects. Like with anything, you have to use it a while to get a feel for it.
I like it. It's not as stuffy as Solaris, but it has a more consistant feel than Linux. Documentation is usually excellent, and the man pages are the definitive resource and usually include examples and explainations. I use OpenBSD for my firewall and nameserver, and FreeBSD for my file/webserver (due to ZFS and better Java support). I would use FreeBSD as a professional workstation (as long as it didn't require heavy 3D work), but not for my home machine.
If you've got the time to put into learning it (which if you know your stuff from Linux, it won't take long), it's well worth it. Throw it on a server and use it for a bit, and see what you think.