Yep just double checked.
I remember a problem like this though. When I was comparing updated offsets with Grey.
There are actually two "castspellbyid" functions. One does some client-side sanity checks, the other just sends a cast attempt to the server without the checks.
The former calls the latter and the checks aren't mandatory so you can use either.
Meh. Doesn't really matter which you choose to use.