I think the only structures that hide enemy composition are ruins, graveyards/crypts and undead burial grounds at retrieve artifact missions.
Ofc, if you get ambushed during the night you can also not see enemy composition, however you will be able to see them if you hover over the enemy party on the worldmap. It can be quite difficult to hit pause in time when you’re on a caravan escort but usually it is possible if you pay attention.
As for how to deal with unclear enemy composition. If you can afford it, buy a Hawk. They are really great for scouting, especially in the woods or if the enemy spawns with the high ground. I put it on my archer in the backline, as he can still escape after releasing the hawk if needed. Frontline might get caught in the 2nd round.
If you plan to flee from the fight, only use a single brother to scout it out so you take less time to move people around. Alternatively you can Alt+F4 though ofc, that would be cheating :P.
Now about those buildings:
Retrieve artifact contracts will always have skeletons and in some cases a few Necrosavants on top of that. Hawk will help you to figure out if they have Necrosavants, then you should put some macers behind the backline to protect archers (if you even take any against undead) or polers and to stun Necrosavants. Generally, they can have Auxiliaries, Legionaires, Honor Guards, Ancient Priest, Necrosavants.
Cemetary/Crypt will have either Brigands, Nachzehrers, Wiedergangers, Fallen Heroes and sometimes Necromancers (not 100% on that one). I am certain that there are never any Geists in those locations though.
Ruins: They can have every enemy except Skeletons (and maybe Nachzehrers). I try and get information from taverns or via contracts about those locations usually. Once my guys are competent, I engage those locations with 2 Sargeants and 3 Archers to be ready for Geists and Necromancers. Again, a Hawk will help you greatly to figure out if they have a Necromancer or Fallen Heroes with Greataxe/sword and how many Geists there are, if there are more on one flank than another etc.
You might also see some footprints next to the ruins which will give you a hint as to what kind of enemy there might be.
As for fleeing: It used to be that using the flee button when not at the edge of the map always killed off some brothers or at least gave them permanent wounds. I don’t think that the fleeing mechanic right now is OP. I like not having to lose a lv20 Veteran because of a bad RNG streak. Or because I run into some Necrosavants on the worldmap early.