Just to be sure, the KeyListener is only called once when you first press a key, and once when you release the key (disregarding key repeats for the moment because you don't want to rely on that in a game). Your game is probably running more frames in between the keypress and keyrelease events and you probably want your character to keep moving during that time. It's the difference between bashing your left button over and over again to move the player left, and pressing and holding the left button just once until you release it; or the difference between RSI after one game or after a thousend games
Actually, if you press and hold down a key, many key press events continue to fire. That's why flagging is even more relevant, since for example someone may only intend only 1 movement space per press and release instead of every press. There just isn't a 1:1 ratio of press:release.
Being a computer programmer, RSI is probably a forgone conclusion anyways.