Well, on the programming/game design field it is not that simple. Try to imagine: I understand that there is a function that allows moving to another tile IF it is 'on the same level' AND there is no wall between tiles. It denies the move otherwise. MFD removes the restriction of 'same level' but not the restriction of 'no wall'. Dot. That simple.
If MFD removed 'no wall' restriction you would be probably able to walk through building walls. I know that when you see a 'small fence' that is 'small fence' for you. But in terms of game design that is 'a wall' with 'small fence' texture. Same as big building wall which is not one wall - these are several 'walls' on diferent levels with 'building wall' texture each.
So, in order to allow jumps over fences a designer faces several additional problems:
1. a function to meseaure height of 'wall' by checking how many walls are there one above another
2. a function to check jump availability - no roof/floor/obstacle above the head of a soldier, but conditional - roof allowed if higher than height of the wall, gee...
3. additional animation
4. referring to 1. a new problem arises. If there is a big wall (3 levels) with a hole made by grenade/rocket on second level (or just a window), but with wall on 3rd level: what is the height of wall? So - another function.... and so on