There is a difference between messages and operations which IMO is muddling the discussion here. A message sent across the network is primarily intended to ensure that everyone is on the same page about system state. It is not the same message passing system used to evaluate a sequence of events during game processing. An operation is exactly that, and how to parallelize each operation is a different topic. Although it is relevant to the discussion and i am not screaming about being offtopic, i think the discussion would benefit from clearly differentiating the two.

A grenade going off does not warrant a network message. The client or server may want to ensure the grenade went off in the correct position, and ensure that the amount of damage each entity receives is correct, however there is no reason a 'grenade explode' message should ever be sent across the network. Each client and the server should simulate the entire grenade explosion process locally and rely on the network to make corrections to the simulation in cases where disagreements about the state of the system arises.

So how to parallelize an exploding grenade is an interesting problem, it would not be a message transmitted across the network.