A lot of WinAPI calls don't have a 1:1 POSIX equivalent. For instance, the whole way that Windows' IO Completion Ports work is different than how you do efficient I/O multiplexing, on Linux. And, until very recently, Linux had no equivalent of WaitForMultipleObjects(). And I mean Linux, not POSIX, which still has no equivalent!
Then, you have parts of Windows like Direct3D, which requires a huge amount of machinery to run atop OpenGL or Vulkan, on Linux.
But, even far more basic parts of Windows, like the loader, have to be emulated on Linux. That's right, I used the "E" word, because Linux has a loader, executable and library formats, an ABI, calling conventions, etc. And they're all different than Windows. Even the filesystem hierarchy is different, and WINE handles that, too.
What WINE should really say, instead of this nonsense about mapping Win API calls to POSIX calls, is that it uses a native implementation of the WinAPI and the Windows runtime environment.