Hi,
1. The interpolation is being done on the GPU, and yes, we have to read back some of the generated data for collision purposes.
2. Since the grid is regular, it's a simple
bicubic interpolation scheme, with modulated noise being added to the refinement process on top. I'm sure the more general techniques reduce to this on the grid. One can also use other wavelet basis functions, in fact bicubic has some weak spots - it overshoots on steep cliffs, which becomes more of a problem with the use of better base resolution.
3. The roads are defined as vector data, and they are applied on the terrain on GPU using a blending shader that merges it with the existing terrain, to seamlessly blend it in there. Regardless of whether the road is or isn't there, the collision data are asynchronously read back to CPU and the collision computations are done there. Some parts of it could be executed on the GPU, but not all (effectively).
4. Well, I'm mostly self-taught in these regards, I even studied Automation at the university instead of Computer Science. As it went, in Automation we drilled theory of control and automation, and the computers were used as a tool, in much more practical ways than the CS guys did ... so I ended up inventing and reinventing lots of things, and enjoying the process
You see, I can really only give recommendations to myself, which would be mainly to tinker with the stuff a lot and google around for papers on techniques that could be of use or inspiration. The math is nothing special indeed, just your usual common techie university basics. And some skills to read academic papers.
And lots of time and passion