Hang on a second.
assert(preserve == Yes.preserveAttributes);
Something is smelling an awful lot here.
Up to Windows 7 CopyFileW which is used for Windows didn't copy
the attributes over[0] but it does now.
This is a bug on our end, which should include a fallback to
copying manually the file contents over.
[0]
https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-copyfilew
Yeah, keeping exactly the same behavior on every supported
platform is never easy.
And when you need to support Windows too, by experience I know it
can quickly become a pain in the *ss...