This was mostly caused by rounding to the nearest vertex on multiple LOD transitions, which wasn't stable (On one component in LOD 0, vertex A in LOD 0 would round to vertex B in LOD 1 and vertex C in LOD 2 (vertex C being the nearest to vertex A, not necessarily vertex B), but the next component would be in LOD 1 and so would start with vertex B, and round it to a different LOD 2 vertex)
Partly responsible was also the "DistLOD" hack, because it used different shader code for if LodValues.x (aka "DistLOD") was <1 or >1, so would cause a beautiful seam between components which hit each case
There will still be temporary seams between landscape components that are still streaming their heightmap textures, a solution to that is in the works.
Also:
Removed FLandscapeXYOffsetVertexFactoryVertexShaderParameters and merged it with FLandscapeVertexFactoryVertexShaderParameters to remove a large amount of code duplication, and did some cleanup of LandscapeRender.cpp/.h (e.g. autoformatting)
[CL 2377758 by Gareth Martin in Main branch]