it is reasonable to me that the case you are showing would be treated the same as having the same guy at the 2 and another guy at the 3 at both spots. the sim engine is thinking - is it better two have the second man at pf and 4th at sf or 3rd at both? programmer hack would just have some crude value assigned to playing the nth man on the depth chart, so you could do a simple ordering, and its probably linear. so 2/4 vs 3/3 is probably no different than 2/3 vs 3/2. personally i would make it scale down (assuming the diff between 1 and 2 is bigger than 2 and 3, which is bigger than 3 and 4). but its extremely reasonable that it would have been made linearly.
i have noticed in the old engine that it was not deterministic which guy subbed in where in these tie situations (hence the method to get around it i mentioned above). i never noticed if they were swapping without notice - i never really paid attention either. anyway, in both of the situations you listed, it seems to me there is no obvious tie breaker that would be used. in both cases it was sanders and dale at pf and sf - which is arbitrary, to the sim engine, i think.
i do think its messed up it would just switch it for no apparent reason. if they added a 5th position, it would let the user make the choice. i suspect that is easier than actually allowing you to specify in all the cases (think about when the same guy is 2nd at all 3 spots and another is 3rd about all 3 spots, or other variations - could get nasty). i would also change the calculation of the best depth chart to say 2/4 is better than 3/3 so it was deterministic to the user, and the only case they had to resort to using position 5 for is if it was a difference between 2/3 and 2/3 etc.