Fork won't work right 100% of the time on windows (or VMS, or MacOS, though it will on OS X) ever. It can't, and there's a limit to how hard it's worth trying. This is documented in the perlfork section of the manual, though whether you'd think to look for it is another matter entirely.
Whether alarm works on windows is up in the air. Whether it does depends on whether windows has interruptable system calls, which is the big place it's useful.
Perl has system-dependent behavior, and it's never claimed otherwise. A fair amount of stuff--pretty much everything feasable--is emulated in places where the base functionality's not native, but there's no 100% guarantee. That's not going to change, nor should it. Because of that, it's always a good idea to check the assumptions behind anything you read before trusting them implicitly. (A good rule of thumb generally)