I think I'll better leave it to an experienced Pike developer to make the final implementation.
In this case I'd say the pike pecularities are minimal while the windows pecularities are monumental. Oh well, I'll try to whip together something. The main problem is that I don't have much time to do the proper testing. And constructing testsuite tests are probably not possible, either.
After a reboot, GetFileTime will recalculate the cached UTC times according to the current DST status, so they will once again be consistent with the values returned in WIN32_FIND_DATA, and thus by M$ definition "correct".
In other words, the cache will after reboot be recalculated with the bogus DST compensation, and it will at that point not be UTC afterall, but offset with an hour. Thus, if pike tries to compensate for the bogusness in the way we've discussed here, it will be one hour off in the opposite direction until the machine is rebooted. So this is still an issue, and working around it would require fd_fstat to look at the system uptime or something. :P