AI Players don't really count as player objects, though; and it's a safe bet that unless there's no control object it won't work on a genuine player (AimAtLocation adjusts aim slowly (from the computer's perspective), so if you called it and then re-added the client's control it would probably cancel the function's control on the player... if it works at all).
One could argue for spawning the client's player as an AI player but that spawns another heap of problems like replicating the entire spawning function correctly including setting the player's shape name (might be possible without hacky badness but I'm not completely sure, never tested) and it might still not work - again, the control object would probably take precedence.
However, you are right in that if you called AIPlayer::AimAtLocation(Player, Vector3D); it would still work in the sense that the script would accept it. What would actually happen is anyone's guess.