I thought I was on to something, but stumbled on the previously mentioned inability to separate location from angle coming through a last node. So for my method to work it would be necessary that a normal can be calculated from another (extra) node than the one the pop is sitting on. Would be good to make fallen trees (all more or less to one side) as well, without having to resort to a decreased rotation of instances.
The idea was to rotate the normal (or move it, change it by function, setup-2), but the height of the instance location would remain the same. But all you do with rotating is rotate/change all, so also the underlying heights. The trees work like pistons, coming out of the ground, no good.
So animating the amount of rotation to normal is all atm., which is what I did here. But that's a tedious job. I must check your file still, see if you use a different method.
The only other thing I can think of right now is have the population sit on (anchor to) a second planet with the same heights, but somehow derive the normal from the first planet, I'll do a test.