Runtime procedural terrain

I need to generate terrain at runtime, ideally by creating the terrain detail data and surface texture data; but I've read that this can only be done using undocumented functions such as SetDetailLayer, which may or may not be supported in the future. Is this the case?

It's not the case; see the TerrainData class.