Please find the parts of the source code that are making these calls and give us some more detail about what they are doing. This is a general request to anyone doing porting of miscellaneous code to the Hurd--posting that program's error output alone does not make it very easy for us to help you figure out the problem.
setrlimit fails with ENOSYS with you try to set the hard limit (since we have no enforced limits). Most programs only try to lower the soft limit, but named might have a good reason to want to set the hard limit (e.g. to constrain when a child process run under a non-root uid can do). Probably the right solution is to change setrlimit to claim success for setting hard limits in most cases. But I'd like to see how this is used before deciding about that. As to SO_REUSEADDR, that certainly ought to be there. Please double-check the exact usage of the call in named and show it to us here. Also, run named under gdb do: b setsockopt b __socket_setopt when each one hits do "finish" and tell us what you see. i.e., whether the socket_setopt RPC call being made, with what arguments, and what value it returns. If all looks kosher on that end, the problem is in pfinet (this is the most likely situation, I would guess).

