I found at least one case where Satoshi imposed order in consensus evaluation. He requires transactions in a block to be ordered such that outputs that are spent by other txs in the block precede those other transactions. There is no reason for this except that he used a naïve implementation which queues outputs and verifies inputs against the outputs queue as it’s being built. So I retained our parallel implementation and added and explicit and otherwise entirely unnecessary rule called is-forward-reference.
https://github.com/libbitcoin/libbitcoin-system/blob/master/src/chain/block.cpp#L821