Here's an example video where the A.I. player doesn't appear to charge at all. I recorded it using ZSNES and the World Warrior version of Street Fighter II, on standard difficulty.
In the video I control Ken and repeatedly trigger the A.I. Guile's flash kick by performing dragon punches at medium/close range.
The best example of this "cheating" is at about 00:20 when Guile performs a flash kick apparently without ducking at all.
Another video (not by me) of the faithful-looking Sega Saturn port of SF2CE shows Guile performing a sonic boom apparently from a standstill.
My hypothesis as to why this is possible:
The joystick manoeuvres are required solely to communicate the player's intention to the computer so that it can execute the move intended by the player. Let us assume that there is a state machine of some kind which watches the joystick inputs and converts them to a "move number" - perhaps an integer in the range 0-255, where each number represents a different move that can be performed by your character.
When implementing the computer-controlled opponent then, the programmers have two basic options:
Have the opponent player routine (presumably, there would be one for
each possible opponent, so 12 in this case) generate the same button
presses and joystick movements used by the player, and have the
game engine interpret them in the same way. This is perhaps a more
modular way to go about writing the game, and would be more elegant
and simpler in some respects, but it may be complicated to generate
the fake joystick events as there is a temporal aspect to them.
Or one could simply avoid the joystick event part altogether. The
computer doesn't need to communicate its intended move by sending
fake joystick events to itself - instead, it can directly indicate
exactly what move it wants to perform, by setting the opponent's move number
to the number corresponding to the desired move.
Based on the video I've posted which can easily be verified in the SNES, PC Engine and arcade versions of Street Fighter II, I would suggest that the second option above was used by the game programmers, and therefore that yes - the computer can "cheat", in the sense that it can instantly execute a move that requires a "charging" action when a human player executes it with the joystick.
However, the computer does sometimes appear to exhibit charging behaviour - especially when playing E. Honda, Chun Li and Blanka. I'm not sure if it's just simulating this play mechanic out of some kind of programmed fairness, or if there is another explanation. A disassembly and analysis of the arcade game code in MAME is possible using the debugger or other tools and would give us definitive answers, but would take some time.