The new powers system includes a high-level synchronization protocol. To boil it down, when you activate a power like Snowball or the Flying Disc, your Paragon Chat instance sends a message to the zone's meta channel declaring that you are activating that power. If it's a power that has a target, the message also includes the target -- either the XMPP JID if it's a player, or a name and coordinates if it's an NPC.
Other Paragon Chat instances receive that message and set things up in their own powers system to replicate the context. The proxy entity that represents your character is assumed to have that power, and the activation sequence fires off with the correct target (or nothing happens if for some reason the target can't be resolved). That of course only works if the receiving instance knows what the power is and how to activate it -- older versions that don't have that particular power show nothing happening at all. Targeting NPCs works because everybody's Paragon Chat has the same static NPCs and can find the correct one to use as a target.
You end up with multiple Paragon Chat instances, each with their own representation of the state of the world, all activating the same power at roughly the same time. Effects are handled locally, so the timing of the projectile and the hit always look correct based on your client's idea of everyone's positions. Since the effects are applied locally as a consequence of the power activation, even more complex ones work across the network - like the granting of the gift when you're 'hit' by Holiday Cheer.
The timing is consistent within the activation of the power, but as network latency implies that not everyone sees a completely consistent world state, the activation itself may not have exactly the same timing relative to other events from everyone's point of view*. For what Paragon Chat does, it's 'close enough' to be convincing.
For something like real combat, that would probably break down fairly quickly, and there would need to be a way to resolve out-of-order power executions, as well as ensure that everyone is playing fair and only sending power activations that are possible for them. AI-controlled NPCs are also a big wrinkle for distributed systems, as somebody has to be authoritatively running the NPC, and you have to handle cases where that particular instance suddenly disconnects. That's one of the reasons that long ago I said PVP is more likely to happen first - see also snowball/toy bat.
Mock effects are definitely in the realm of possibility with this system. Loading the real power data in a form that doesn't bloat Paragon Chat's already hefty memory footprint is one of the issues that needs to be solved. Persistent ownership of powers was another (which is now solved). Mock leveling or some other way to choose powers is another, as simply giving every power to every player would crash the client, and currently there is no record of which powersets you chose at character creation.
* Future plans for Paragon Chat involve moving away from the declarative system of periodically broadcasting coordinate updates. Instead, it'll send a timecoded event stream, kind of like an incremental demorecord that can be buffered by a small amount and played back for smoother movement without prediction artifacts. Presumably power activations would be timecoded as well in this system, which would solve the relative ordering problem quite handily.