Ok, so just to close this thread and also officially remove it from my todo ;)
What happens when we have two materials with different normal maps and we are blending between them: basically it can be seen as just rendering both materials with 50% transparency and then stacking them together on layers. If you have concave normal on one material and convex bump on another material, blending them won't make the resulting surface flat, but instead will show both the convex and the concave bump. See:
https://forum.corona-renderer.com/index.php?topic=27703.msg163341#msg163341This may be a bit unexpected, and having different normal "blending modes" would be really great (so that for example one normal on top of each other would neutralize the underlying one, or would amplify it.
What happens when we have two materials with different properties and we want to blend them, but we want to show one normal map on the whole object: the above description applies. So if we apply the normal map to material 1 only, we will see it only in the areas covered by material 1. If we apply it to material 2 - we will see it only on material 2 areas. If we blend between the materials (for example using a gradient mask) - we will see the normal only on the material to which it is applied, and it will be fading into the non-bumpy material. To get the effect of a single normal map applied to all areas (material 1 and material 2), the normal map has to be applied to both materials.
I am adding an archive here and a .max file saved in 2017 format + renders showing different scenarios (hopefully self-explanatory when accompanied by the above description). Feel free to experiment.
There is also a small bug which produces weird artifacts under specific circumstances, but so far I encountered it just once, and it is reported. So forget about it. :)