Generate normal from vertex paint?

This is exactly the type of thing I spent a lot of time trying to get right in gears. The best bet it to use a companion normal map that goes along with the heightmap you are using for your blend modulation.

For example if your height blend texture is photoshop clouds, try converting them to a normal map using the nvidia filter or xnormal or knald. Then when you have a nice blurry normal of the height, you can sample that normal inside of your material along the intersection. Probably need to boost the strength of the normal to make sure it doesn’t get less intense near the flat bits etc. This method isn’t perfect but it is about as close as you will get without perturb normal or something like it.

The same technique works for many advanced blending techniques. For example, you can make some custom blend normals for snow as it falls on rock that makes the snow have a rounded pillow like appearance by creating a blend modulation texture that is based on a blurry version of the rock displacement and then a normal made from that blurry texture, and then overlaying that blur normal at the edge using some material defined parameters for the length, intensity and power of the edge blend.