The other major feature Mojo exposes is
routing. Some systems enforce resource limits which would prevent us from creating the huge number of transferable IPC endpoints (for object remoting) we'd like to use in Chrome. If you tried to replace Mojo message pipes 1:1 with Linux sockets, for example, Chrome would run out of file descriptors almost immediately.
Mojo supports a huge number of endpoints by multiplexing and abstracting away those platform-specific resources like sockets; and because it must also support arbitrary, low-latency, asynchronous transfer of its endpoints, such multiplexing work requires a significant degree of complexity to manage efficient packet queuing and routing behind the scenes.