said by RazzyInfLoop :
Is it because of backward compatible of previous Windows software?
Because of previous mostly-3rd-party software that used hardwired paths.
But here's the design tradeoff. Do you want:
a) Problems with old apps written by people that don't know how to avoid hardcoded path names - which was always bad practice.
b) Problems in old apps that don't expect loops in file systems - which has never happened before.
In order to avoid people having (a), Windows has exposed (b). I think this was the wrong choice. I'd go further: a loop in a file system is never ever the right choice.
Note, it's not junctions per se
I'm complaining about, it is using junctions in such a way as to make loops.