Right now, when you cast a spell, the server checks what spell, if any, you cast. This creates a delay because your client has to hear back from the server before it can know if the spell cast or not. But shouldn’t it be possible to eliminate this delay?
Imagine if both the client and the server had the ability to check your spells. The client could verify immediately what spell you cast, and let you get on with the next spell, even if it’s still waiting to hear back from the server. Of course, the server would still be the official arbiter of what you do or don’t cast, but this system would allow the player to get on to their next spell without waiting.
In the case where the client and server disagree over what you cast, it means that the player’s game is hacked or corrupt, and you can kick them, so there’s no risk in a player hacking the client to cheat their spells.