Yes thats right the player is mainly on the ground and the terrain only shifts left and right (and for the love of god, DONT try and process both a x axis & z axis shift at the same time!). As far as "loading", all you really need to load are the new heightmaps (the chunks themselves are never deleted, but rather repositioned). So if you move too far to the x+, all the objects on x- (left) side get picked up, and repositioned on the right side. Then just write a little queue so only one chunk is updated (re shaped, re textured, re 'normaled') every xMs. If you do it right (like me :p) you will get ZERO stutter.
As for taking to the air, and Lod, you have lots of options. My terrain had been through a billion revisions (been working on it for over a year). Right now im actually managing two terrains, one is 16x16 chunks low res, the other is 4x4 chunks high res. The two terrains just sit ontop of each other, each shift as you move. There are more complex ways to manage lod, but I found this way to be most elegant. Its a good place to start imo, you could always add more layers if you need more lod.
All you need is zeal