Well, part of the problem is that we don't implement WoW64 the exact same way Windows does. All the 32-bit Windows routines have thunks that transition to 64-bit code, call the 64-bit API equivalent, and then transition back to 32-bit code.
That's probably true only for low level things like ntdll, user32, gdi32 and ws2_32, but everything else that doesn't need to access kernel level OS functionality (like gdiplus/windowscodecs) don't need to perform the 32-bit to 64-bit transition.
Those examples also demonstrate an important difference between Wine and Windows. On Windows, both of those libraries are implemented based on lower-level dll's and can work the same way as an application's 32-bit dll's. In Wine, that's true for gdiplus (and in fact, on current Wine gdiplus is being built as a PE dll), but windowscodecs needs to access native Linux libraries like libpng and libjpeg. So for Wine, it's not just a few low-level libraries that would need thunking. It's any dll that needs to use a Linux library.
Our 32-bit libraries call the 32-bit Linux equivalents, since this is massively easier and "just works". I vaguely remember a conversation a number of years ago where someone talked about doing similar thunking to Windows and there was concern that it is too hard to get this thunking correct for every API call, but I don't remember the details as to why that's the case.
win16 is very small in comparison with win32, so it was relatively easy to implement it on top of 32-bit code, it's practically impossible to do the same thing to implement 32-bit on top of 64-bit.
In fact this was attempted with the hangover project: https://github.com/AndreRH/hangover
The README explains that it currently doesn't work very well, and it goes into a lot of detail about the technical challenges of this approach.
There are other possible approaches, but they all pose similar challenges, and no solution for running 32-bit applications without 32-bit host libraries is ready for users yet.
CodeWeavers is working on a solution for MacOS, which will soon be dropping its 32-bit libraries. LIke hangover, this is not ready for users, and it's not targeting Linux. We don't expect it to have the same level of compatibility or performance that 32-bit Wine has today.