These have been considered, actually, and JSON + ZeroMQ work quite well within the applicable scope of IPython / Jupyter. IPython does support alternative serialization, such as msgpack or protocol buffers, though this rarely has a noticeable performance impact. No other kernels bother to support this that I know of, because it isn't especially useful in interactive sessions, etc. It is only commonly used in IPython.parallel, where the connection files include serialization information, and high throughput of messages starts to matter, but even there, the effect it small.
Transports other than zeromq via tcp or ipc are not planned to be supported, and I don't imagine the added complexity would provide much benefit.