The net.WriteBuffers type exists to permit code to easily take
advantage of the writev system call when it is available. However, the
Go methods Write and WriteTo, as defined by the io.Writer and
io.WriterTo interfaces, make no promises as to how many times they
will call the write or writev system calls. That is in some ways a
level confusion. A program can perfectly reasonably use net.Buffers
with an io.Writer that is not any sort of system description, for
which writev doesn't make any sense anyhow.
So, yes, the current implementation is OK. Programs that must
guarantee atomic calls to write or writev must use the
golang.org/x/sys/unix package, not the net package. The Go standard
library doesn't provide guarantees at that level.
Ian