Here you go:
World Position Offset push (by vertex normal) applied to spheres, the top is masked by top normal.
Here the same is applied to a terrain, because of the 2 bugs nothing happens there:
Here is the same but with without the top mask:
It works but only up and down and that very extreme.
Here it is with the amount reduced a lot:
Only up and down, like vertex normal is only showing up.
Here is the material setup:
The texture is just world aligned there so it has a proper uv on a terrain slope. On the bottom is the masking of the top.




