Detail textures are usuallu added to the model as a second skin that is much smaller and usually black/white noise designed to tile well over the main texture. T
hey can be colored as well and can be created to effect nice texture details to any model (just like hmps)

On terrains they are automatic, on models, you need to grab a detail script (look in user contributions, I think slin wrote one for models)or write your own.

For ditches, yes model them into the terrain but look at LOD so that you can have a visual range of up to 15oo quants for example where the ditch will be a ditch but after that distance becomes a skin with the ditch shadowed in.

for roads, your solution will work fine and is the common approach but not as good as block geometry skin effects, use seperate model to get good detail and overlay above scene or stich into place dynamically.

just some of the approaches I have taken over the years looking for good repeatable texture and graphics...