I noticed that a zeromq PUB socket will buffers all outgoing data if it is connecting, for example
import zmq import time context = zmq.Context() # create a PUB
So bind() and connect() result in two different behaviors. Why don't you just choose which one you prefer (it seems like bind()) and use that?
It is indeed a feature of ZeroMQ in general that it buffers outgoing messages until a connection is made.