If I remember correctly, the retreat recovery mechanic was put in place to slow the pace of the game, several years ago, specifically for attacking units.
I assume this was to simulate the attack coming under intense fire from defending units, causing them to either pull back a short distance to take care of wounded, allow space for supporting bombardments and rally the men for the next push.
They were also able to retreat in place, to simulate that the cover they were currently in was better than what they had to the rear. I guess this is the same effect as becoming pinned down.
Because there was no exclusions put in place for units with withdraw and delay orders, it had the detrimental effect of making the withdraw and delay order next to useless.
It makes sense to me, that units that have been given prior orders to withdraw via a specific route (after an orders delay), would do so without long pauses for recovering from forced retreats, the reason being that its in their best interest to get away, and they have been given permission to do so, as well as the fact that the planning for said move, has already been done.
I guess there still needs to be a mechanic to allow units with withdraw and delay orders to become pinned in place, until they route, but they need to be able to recover from it far quicker than when attacking, because its in their own self interest to do so.
Faster units like Mech and Armour still need to be able to overrun slower infantry units though, so maybe units attacked by them should have a higher chance of becoming pinned in place.
Units with just defend orders would have to go through the orders delay process before they would be able to withdraw, but units with delay orders should be able to begin a withdraw, without an orders delay, after the initial order delay got through and I would love to see a manual override button to allow the player to decide when this is to take place.