Yea, that's my current thinking on how to fix misconnected roads. Zones that are set as having only 1 exit should only have 1, not several.
Terrain should not be an issue once it is possible to figure out why zones are not closed properly.
I don't know how the first road is created, but it is an interesting question to find an answer to.
My only intention here is to study how RMG works a bit to maybe improve some common MP issues under SoD.
To this end, I think it will be nice to use a set RMG seed so that knowing the final answer can let us understand how the game manages its steps over there.
@ 0x53662F you will find call to time() to get random seed, this can be overwritten and set to any value. After that, all RMG maps with the same settings give the exact same result. The impact of modifying any piece of code is more clearly seen!
Object guards can always be moved in post-processing, or removed along with the objects they were guarding.
Example of fixed Seed 0x12345678 and modified code.
Here 0x9090 @ 0x541B6A
Here 0xEB @ 0x541B6A
This is not a road fix, there are still holes that can happen which get plugged by monsters. But it would possibly reduce the amount of wrong roads in Jebus.
I believe actual problem lies when zones are moved around and cover parts of each other. These tiles get marked as belonging to both zones and need to be either closed by obstacles or blocked by creatures. If game selects creature instead of obstacle, problems start for roads.