They've been using a third party software called world machine to design terrain. It's very good, but you can't just attach it to a game.
World Machine gives you heightmaps and color maps and that's all. For that purpose they can use anything they want. For rest, they are handcrafting everything.
but some of the random maps generated in Warband were absolute cancer.
I do get that some of the randomly generated maps were painful in terms of spawn points and such. Too much slope, weird angles etc. But most of the time it was okay. And I choose that over this weird terrain based system. At least it was "accurate" based on where you are standing. Now you are getting random forest terrains even though you are definitely at plains or vice a versa.
Creating a procedural terrain isn't a super easy feat but it's not black magic either. Procedural terrain heightmaps are a thing and you can always do auto hydraulic erosion on terrains which make them look more natural.
there isn't a way to automate it to my knowledge
Inside the engine, there are no features like that. But it's not impossible for team to make it. After all, they own the engine and all terrain specific data is inside the RGL as well. Perhaps they still have it inside the RGL but don't want to bring it up since they somewhat invested time on those battle scenes. However, based on the terrain features, these points can be added on the fly. Detecting a hill on a data set is literally a Graduate Software Engineer interview question. So I'm fairly confident that they can find that, as well as forested areas, shores, etc. They just don't think as 'priority' I guess.
Keep in mind that real life doesn't have randomly generated fields either.
True but that's a bad argument to support random terrains ( not randomly generated but random terrains from a list of handcrafted ones, it is not realistic at all either )
If you want an easier solution, then they can simply take high-res Calradia world map data into game and create battle maps based on where you are standing at that second. This, again, partially procedural. Not random, but at least still generated on-the-fly. This exact implementation is inside the Rome II Total War(or Rome I : TW), by the way - if you want to take a look. Based on where you select, it generates a heightmap according to world map heightmap data in it. i.e. if it's half shore, it's half shore exactly like that - it also includes tiny cool details like having wonders like
Colossus of Rhodes visible on shores if you are fighting on a field that is close to it.