This has vexed me terribly, if I understand the issue.
As far as I have tried, and mind you I am by no means an expert

, there's no way to take a computed distribution and apply it as a mask to a displacement "further down the node chain". The distribution shader reacts to said displacement and the effort is lost.
So far the only way I have been able to get past this is with a painted shader, which works well as long as I don't have to apply the desired surface across a large and diverse area.
It would be nice, but who knows if it's possible with the way things are calculated under the hood, to be able to specify in the Distribution Shader that is should "freeze" itself against anything further down the node chain. Or maybe a One Way Distribution Shader that takes it's input exclusively from the upstream nodes.
The Terrain Normal vs Final Normal never clicked with me, but after Matt's comments - well, I need to play with that before I put my foot in my mouth (breaking habits is
hard).