It's comforting (perhaps?) to know I'm not alone, although I already knew that because my friend with an iPhone 3GS, same version of iOS, has reported the same thing: namely, in my case, an iPod Touch, iOS 4.1, had an alarm set that has consistently sounded an hour late since the weekend. This occurred just after the switch from DST to GMT so I thought it might be the reason. Then I programmed a new alarm and it worked fine. (However, modifying the time of the "bad" alarm didn't fix it.)
I assumed this was something to do with the way the first alarm had been stored - which was prior to the clock change. However the clues here seem to suggest it may be a "feature" of the weekday repeating setting. I'll do some more checking because the faulty alarm happened to be a weekday repeat, whereas the working one was a one-off alarm! Whatever the reason, not good: late for work!