One method I tried, that didn't end up working very well, was deferred texturing for the terrain.
The terrain texture coordinates are based on its world coordinates and normal. Using the GBuffer normal + depth buffer to reconstruct world position gave me what I needed.
And while this worked and produced identical texture coordinates, the gradients were not always correct, resulting in some nasty looking aliasing anywhere that the depth buffer contained a large difference between adjacent pixels(because originally they were separate objects).
My understanding is that the graphics card works on 2x2 pixels--
AB
CD
So the world coordinates are calculated in the four pixels, the difference between the adjacent pixels world coordinates is used as the derivative for MIP calculation.
But if pixel A was from a completely different mesh than pixel C, and 1000 meters closer to the camera, it ends up with really large derivatives and selects the lowest MIP--this is not what you want!
So everything ends up with a blocky/pixelated outline that shimmers and looks just awful.
If you passed down the derivative information perhaps you could work around it, but that is quite a large amount of extra data, and I didn't want to go down that route.