rsync 2.6.9 (and from the looks of it 3.0.0) attempts to set socket options (either via --sockopts or the rsyncd.conf socket options conf statement) after the socket was listen()ed or connect()ed.
Specifically, I was trying to use SO_RCVBUF and SO_SNDBUF to increase my window size and didn't get anywhere. strace confirmed that the setsockopt call occurred after the socket was connected.
See the patch at the URL which moves the setsockopt calls into socket.c after the sockets are created but before they are connect()ed or listen()ed
Created attachment 3239 [details]
Patch to move the setsockopt calls into socket.c
Added attachment to the bug.
Created attachment 3240 [details]
The same patch as above, but applies to 3.0.1
I updated the patch to apply to the (soon to be released) 3.0.1. This is too late to make it into that release, but I'll apply it soon after that.
I've committed this change to the git repository.