(As in: is it a general assumption that a service must inherit the usual 3 file descriptors?)
It is a POSIX requirement that command-line programs are run with 0, 1 and 2 open. Nevertheless, failing to address that requirement should not cause malfunction in a program, so yes, it is a tcpserver bug.
s6-tcpserver doesn't have this bug. :P -- Laurent