Agoric does not rely on causal order and our Swingset kernel does not provide causal order. Rather we rely on what we've come to call "end-to-end reference fifo". Rather than unpack that here, practically Agoric on-chain vats only speak to vats on the same chain, therefore using the same single-"machine" Swingset kernel. For that non-distributed case, this effectively reduces to "point-to-point fifo".
Causal order >= E-Order >= FIFO.
We never contemplated causal order because it is impossible for mutually suspicious machines communicating over untrusted networks. We were going to do E-order. Why we retreated from E-Order to FIFO is a long story.