I don't think all of the versions should be synonymized, because Xcode can change substantially between major versions. Witness, for example, the difference between Xcode 3 and Xcode 4. Even Xcode 4.2 is different from 4.1 because of the iOS 5-specific things that were added (support for Storyboards, for example).
However, tags like xcode3.2.3 aren't very worthwhile, and I'd recommend that we only have tags for the major feature releases: xcode4, xcode4.1, xcode4.2, etc. Minor versions such as xcode3.2.3 should be collapsed into their parent version tag of xcode3.2.