Do all events only fire in response to a reply from the WoW servers?
For example, does UNIT_SPELLCAST_SENT fire when the client initially sends a spellcast request to the server, or does it fire when the client receives an acknowledgement from the server that a spellcast request has been received?
If some events can fire without any server message being received, is there a list of those events?
Some events are purely client side, indeed. Spell cast sent means just that, a spell cast command was sent to the server. When it actually starts being cast, SPELLCAST_START fires. Tradeskill open/close events are also client side. (I don't know if that's the proper terminology)