I guess this is fair criticism given the FAQ, but many features have been added over time.
Setting up a monitor socket allows you to observe pretty much any event you could care about, like peer connect/disconnect/errors, etc.
There is also a draft feature to access the number of queued incoming/outgoing messages (see https://github.com/zeromq/libzmq/blob/master/doc/zmq_socket_... for details).