Well, why it does work
on Indigoperl 5.6.1 (Win32, ActivePerl-compatible), I do get a "illegal instruction" fatal error on Win98 — known on other platforms as a segfault. So the old behaviour isn't any better than the new one.
Well, the page that snax pointed to says "... there are serious caveats, such as inability to die() or exit() from a signal handler.".
p.s. Did alarm() get fixed on 5.8.x? Because on perl5.6.x/Win32, it doesn't interrupt a sleep(), like it does (and should) on other platforms.