http://bugs.winehq.org/show_bug.cgi?id=58155
--- Comment #5 from ToastyBug cemer99797@isorax.com --- (In reply to Brendan Shanks from comment #3)
This would be a good improvement to have, but it's unfortunately not straightforward to implement. Windows also has copy-on-write support in the ReFS file system, and there are APIs to use it (see https://learn.microsoft.com/en-us/windows-server/storage/refs/block-cloning) which can clone a specified number of bytes in one file to another existing file. (Linux also has similar reflink APIs).
macOS only has clonefile(2) which copies an entire file to a new filename, and no "specific bytes" or even "preexisting file" API. This is not a good match with the Windows CopyFile() APIs (and the fairly new NT kernel syscall implementing it), which work by first creating the new file, setting attributes, and then copying the bytes in.
I filed a feedback with Apple 2 years ago asking for a system call that can clone parts of files into existing files, without that I don't think this could ever be implemented in upstream Wine. (It might be possible in a downstream like CrossOver though).
Why should Wine need to clone parts of files into existing files? When you first run Wine (with no WINEPREFIX created), Wine will create an entirely new WINEPREFIX and duplicate (copy) fresh files from Wine.app/Contents/Resources/wine/lib/wine/ to $WINEPREFIX/drive_c/windows/. In this case, APFS copy-on-write is exactly what is needed to make all those files "references" to the originals, without actually copying data blocks on disk.
macOS uses this APFS copy-on-write system by default when duplicating files with the macOS Finder, and when using the Terminal `cp` command with the `-c` flag.
GNU coreutils has implemented APFS copy-on-write for macOS by default since release 9.1 (2022-04-15) [stable]:
On macOS, cp creates a copy-on-write clone if source and destination are regular files on the same APFS file system, the destination does not already exist, and cp is preserving mode and timestamps (e.g., 'cp -p', 'cp -a').
(from the GNU coreutils changelog: https://github.com/coreutils/coreutils/blob/master/NEWS, search for the text "copy-on-write" for more)