Bitcoind not publishing blocks via ZMQ after reorganization
Is this expected behaviour? During a chain-reorganization, can I only expect ZMQ to publish the tip of the new chain


Yes, a ZMQ notification is emitted any time the active tip of the chain changes.

If you have a chain B1-B2-B3, and there is a 1-deep reorg that rewrites B3, you end up with B1-B2-B3'-B4. The tip changes here from B3 to B4; it does not go back to B2 in between.


  leaving me to figure out that a reorganization has occurred and then having to manually retrieve the new blocks?


You have to do that anyway. ZMQ is not a reliable protocol, so you must be able to recover from missing messages (and in general, with a node going down temporarily). Dealing with this means discovering that the latest tip is a reorganization compared to what you had before.

This is true in general for ZMQ, you can use it as a notification mechanism to perform an update right when it happens, but you need infrastructure for fetching to recover too.

For more information, see the ZMQ documentation for Bitcoin Core at https://github.com/bitcoin/bitcoin/blob/master/doc/zmq.md.