I just want to add that I'm all for the philosophy that Bots shouldn't be able to do anything that a human couldn't do.
Of course, if you want to make a bot play like the world's greatest JA player would play, that's perfectly fine.
But the bot shouldn't be able to "cheat" as you put it (barring necessary program shortcuts to simulate real behavior).
About the only thing that I've seen that feels a little off here is the "bot runs backwards while aiming perfectly."
But I guess concievably there might be a human player out there that is just THAT GOOD.
As far as aim is concerned I've had people snipe me all sorts of ways, proving incredible shots ARE possible, and they can't all have been using aimbots... ; )