It's easy to forget that the "I" in AI is not really intelligence as experienced by human beings, but merely an illusion created by the programmer, and the speed of the processor and the efficiency of the algorithms. We encounter AI of various types and sophistication more and more as we interface with the electronic components in our lives, yet we only consider the "cheating" and "winning" aspects when we play games against an AI opponent. Pity the poor programmers who have to write code to accommodate the countless possibilities of how intelligent the user is, or how the user will screw things up or do the "unexpected".
As far as AI in games is concerned, the programmer is forced to implement the "rubber band" effect in order to make the game hold it's value as long as possible. In a game as complex as today's FPS's, if the programmer didn't resort to "cheating" at some point it would be impossible for a desktop PC to compete with the incredible parallel-processor between the player's ears. In a game with much simpler rules, such as checkers or chess, such cheating is not necessary nor possible, really. Someday, processors may become so fast that cheats will not be necessary, but instead a "dumbing down" will be in order. This is already common, of course, but it will become even more necessary. So when does making a game enjoyable and challenging for the player cross the line into "cheating"? Conversely, when does "cheating" detract from the enjoyment? Those are questions the game-maker must struggle with and attempt to balance, unfortunately not always successfully as any video-game player knows.