If I wanted to aimbot in an FPS, I would just analyze the HDMI output from my computer (via an FPGA) and have it directly create the necessary USB transactions to move my mouse to the target's head. I would introduce randomness, "input lag", jitter, and even some misses, so that people looking at the kill cam wouldn't immediately think "aimbot" as they are apt to do whenever they die. (You also don't want to make your mouse movements statistically different from anyone else's, or it's the server that will pick up on your cheating... or at least a well-crafted MapReduce. Do game companies have MapReduce? I hope so.)
Executed well, the developer of the game could do nothing about it; maybe I'm really good, or maybe I'm aimbotting. My computer is completely normal, down to the device descriptors on my mouse and monitor. There's no wine, no virtualization, no additional software running.
In the end, trusting the client is crazy. If you want to decide win/loss based on things computers can do easily, your game is probably bad. And aiming is something computers can do in their sleep.