You can't rely on the area we're drawing to be rectangular. We use AlphaBlend to draw rotated images, any text that isn't a solid color, and any brushes other than solid or hatch brushes. Anything we can't do accurately with gdi32 will use AlphaBlend, and the number of cases will only increase.
Can't we fix wineps?
Can we read the bits back from wineps and write new bits with the image applied?
If neither of those things are possible, the best we can do is to do ALL of our drawing through alpha_blend_pixels (by using a GpGraphics without an hdc), compose the result internally, and blit the result with a mask based on the resulting alpha values when GdipFlush or GdipDeleteGraphics is called. But until we have a line/curve drawing implementation using alpha_blend_pixels, that would cause those operations to fail.