Ah! That explains why it has to reload everything. It throws you into the zone of whichever ward you're buying from temporarily without telling the client to render anything from that zone. You still have to render the characters fresh when you return though.

This is starting to make sense to me now. Apparently all, or nearly all, player data is actually carried inside the current zone. This is a very poor design choice obviously, but I think this must be the case. It explains why seemingly simple tasks take so much time. They require the creation of entirely new tables and functions to link data from multiple zones.