Well, I had a sneaking suspicion this was a threading issue, because the threading on FreeBSD 5-CURRENT is in a flux right now, with 3 different pthread libraries to choose from: the legacy libc_r, and two new kernel threading libs, libthr and libkse, which aren't mature yet.
FreeBSD-current now has a feature which allows ld-elf.so to "map" one library to another, so for example programs which are linked against libc_r can be remapped to libthr or libkse (since they all share the same abi), and the place to configure this is /etc/libmap.conf. You could achieve a similar effect with symlinks, only this is a cleaner solution.
Originally I had libmap.conf set up like so:
libc_r.so libthr.so
libc_r.so.5 libthr.so.1
(You can also set it to use per-program settings, read the man page for libmap.conf(5)).
I decided to try commenting out both lines in libmap.conf, so that it was not mapping at all but only using the libc_r library. At that point, all my nsd troubles stopped. I then decided to try mapping libc_r to libkse instead of libthr. Everything continued to work.
That is how I came to discover this. Is it working for you now?