ZeroMQ's variety of socket semantics is great, and it does a good job abstracting away the messy details of TCP. You can build rather complicated systems on top of it much easier and faster than you could using raw sockets. The implementation itself has some rough spots, such as the multi threading. I really like the elegance of nanomsg, but it never really got the same polish that ZeroMQ did. I wouldn't expect the same raw throughput as a hand-tuned TCP based protocol, but it's generally more than fast enough for most use cases.
I believe the original developer passed away a few years ago?