It appears that for overlay mode I won't be able to make the alpha blending working. It's due to how glsl's output merger belnding states work. I can work around this by making blending modes as a shader, but I wanted to make them native and accessible by setting for example image.blending("overlay"). To make it as a shader it would require to render all the theme objects on the master surface and then pass that surface to the shader to be used as a back buffer.
The good side of this is that I'm not limited to just 4 blending modes. I could do all the ones that Photoshop provides and many more.
Tell me what do you think.