The principal issue in using ZeroMQ is figuring out how to combine its messaging primitives into something your application can use. This could end up being an asset if you have special requirements; however, for common cases there are established patterns you can use. For an SOA, you may like the Majordomo Protocol [2].
As an aside, reading the ZeroMQ introduction was great in gaining an appreciation for the difficulties arising from creating distributed applications and was enjoyable, to boot [3].
[1] http://zeromq.org/docs:welcome-from-amqp
[2] http://zguide.zeromq.org/page:all#Service-Oriented-Reliable-...
Also see a Python implementation of this protocol:
https://github.com/guidog/pyzmq-mdp
[3] http://zguide.zeromq.org/page:allI think one of the best things about ZeroMQ is there are not external brokers or services that you have to keep running. The entire architecture is captured in your own long running processes.