Problems with texture rendering

I am rendering a flower from textures from a spritesheet on screent, and all looks fine. When I use the same textures but not from a spritesheet the flower is rendered differently.

This image (first, below) of the flower rendered from a spritesheet and looks correctly. It is composed of two texture layers: petals and center.

This image (below) of the flower composed from two sprites, one holding petals texture, the other holding the center texture, not from a spritesheet. As you can see, there is transparency around the center, and that is caused by blending (I presume) of center texture onto the petals texture.

The petals and center textures were composed from original images read from files using CCRenderTexture. The original images are PMA (premultiplied-alpha), while the resulting texture from CCRenderTexture is NPMA (non-premultiplied-alpha).

Changing blending modes to PMA or NPMA does not help.

The sprite composition is simple:

ROOT-SPRITE (empty image, ie 1x1 fully tranparent image)
±>PETALS-SPRITE (petals texture), z=1
±>CENTER-SPRITE (center texture), z=2

I have the following questions:

What am I doing wrong?
How can I resolve this?

Using Cocos2D-X v3.4 in iOS simulator (device has same results).

Remains unresolved in latest stable version, 3.7.1

I was able to create a costly work around by writing out to a png file each created texture, then reading those png files as textures, and using them in a CCRenderTexture to create the final texture. This worked well, and the resulting texture looks exactly as the top image, as it should.

The original and normal approach was not to write the texture to png files, rather send them immediately to CCRenderTexture to compose the final image.

So, why does the costly workaround work, and the normal and reasonable approach not?