Erlang is not a language for writing libraries that can be integrated into other runtimes. It is opinionated about concurrency, memory management, types, message passing, etc. That isn't inherently a bad thing, but it's the wrong choice for a library that is trying to offer in-process APIs in lots of different languages.
ZeroMQ is software that is more at the level of the Erlang VM itself. It's not an application, it's infrastructure. You wouldn't say that the Erlang VM should be written in Erlang.
Exactly, this makes no sense at all. 0MQ is a low-level library that higher level languages link into (see all the [bindings][1]); it's pretty much a veneer over plain sockets that adds a bunch of features. Why would you, or better, how could you write something like this in a language that has to run in a VM?
ZeroMQ is software that is more at the level of the Erlang VM itself. It's not an application, it's infrastructure. You wouldn't say that the Erlang VM should be written in Erlang.