I usually don't defend Windows, but, rename not overwriting (without an argument) seems safer as a low level API, no? Given it takes a 2 line helper to achieve the same thing in C++ [1], doesn't seem that bad.
Safety is usually not a design goal for low level APIs. You rather want it to be minimal, functions to be orthogonal, clean abstractions and only promise necessary semantics.
And this might be already the reason. Win32 is geared towards the broad range of developers whereas Unix comes more from systems thinking.
I just want consistency. If the POSIX standard defines a function's behavior then you should either implement it by the standard or give it a different name.
[1] https://gitlab.com/jeffreyrogers27/AtomicWrite/blob/master/A...