I’m gonna chime in with a pointer to
Where what I’m seeing is that WPO introduces what appears to be some sort of position “uncertainty” as perhaps an optimization strategy? In the sense that plugging in a constant 0 to WPO (which disables it) produces different results than plugging in a series of shader instructions multiplied x0 (which should, theoretically, also entirely disable it, but produces different results).
My use case involves unlit materials, the old TAA algorithm, the forward rendering path, skeletal meshes rather than static/foliage… basically nothing is the same as in your example except in both cases there seems to be some frame-to-frame imprecision in the exact value of WPO-modified vertex coordinates.
As a test for your issue, I would say go into the master material for your foliage and try multiplying the final pin that feeds the WPO value by 0. This SHOULD disable WPO… but I suspect what you’ll see will be that the trees don’t move, but they remain fuzzy. And if you instead just plug a constant 0 into the WPO value rather than multiplying the vertex math by it, you’ll see the trees become sharp again.