The only condition that can prevent retreat into a region right now is the value of ctlAllowRetreat that should be 5% unless someone put it to 0% for fun
I'm in the process of upgrading the retreat checks with the same tests as the MTSG check, so will be added for next RC the test of blocked links because of presence of hostile ships in a river/strait and I'll see if I can test ZOC in the destination region, but that's not a given.
EDIT ... about the ZOC generation and the front effect, i.e not being able to go into another region, because there is an enemy presence in your region that is blocking you from exiting, except in an adjacent region with high MC from you.
The code existed in 2009 and has been commented out, on purpose. Because if you are in battle, then you have enemies, and they generate a ZOC. It means that depending of the value of the enemy, you might be unable to retreat in a friendly region which has a MC much above 5%. If you are confronting the army of Potomac and want to retreat, it can generate such a ZOC that no region except one with perhaps 60%-80% MC of your can be retreated into!
So as you see, this rule is drastically changing how the game plays. We will go from 'not being able to retreat in a region with less than 5% MC' to a rule which will be much more harder on retreaters. It can only be added as an option that grognards will activate, but for the general public, 5% is enough. It means you can't retreat in region where the enemy is alone and you have no troops to maintain this low MC, so that's good enough for me.