I'm not sure if this is a bug or something I don't know how to use.
I've noticed that overlapping brush strokes carrying normal informations, will build up corrupting the normal texture, and I don't find a way to change this behavior. In the image, you see the effect of multiple strokes in the normal channel, using a texture:
Each stroke has 100% opacity, so the effect you see in the first sample, it's only one stroke and looks like it is in the source texture. All the others are stronger, corrupted results that will brake the material.
As I'm painting a layer using multiple brush strokes one on top of the other, the normals build up separating from the information in the other channels: at each stroke, every other channel will replace the existing information on the same layer, whereas the normals keep distorting.
I've also noticed that the only way I have to flatten the normal with a brush inside a layer, is detaching the normal channel from any material or texture: even if I try to paint with a material having flat normals, they will just be diregarded. If the normal channel instead is a uniform color, disconnected from any texture or material, that will be painted properly within the layer and will actually replace existing normal data.
It looks like, as soon as you attach a texture to the normal channel, each stroke will be set to combine additively with the previous ones, and you can't do anything about it.
I don't know how do you takle this, I couldn't find a way around, and the only option left is either to not use the normal channel at all, or carefully place each stroke of the same layer as such it doesn't overlap with all the existing others.
Changing the blend mode of the normal channel of the layer, will affect the way the layer mixes with the lower layers, but not the way each stroke mixes with the data of the layer itself.
Changing the normal mixing mode of the texture set, doesn't have any effet on this.