In a word... YES.
That drove me bat sat crazy, too. I've used it in a C keyboard input program I wrote, many months ago. It works, but I hate the way it polls the memory. You would think there would be a more efficient method. Sometimes I really miss the days of fixed memory PEEK.
Pete
You can read a buffer of the 256 keys which it checks instead, if you like, and do it all at once.
Basically, instead of READ key, you'd READ keyboard(), where keyboard is dimmed as DIM keyboard(1 TO 256) AS_UNSIGNED_BYTE.
Of course, after you read that whole array, you'd still have to poll it to see which key(s) are in use, so I really don't see where you're any faster/more efficient...