LabVIEW 7.1 and Earlier
LabVIEW uses the name of a VI to provide memory for that VI, so when attempting to load two VIs with the same name LabVIEW will be unable to differentiate between the two.
For example, suppose you have two VIs which are named main1.vi and main2.vi. Each of these call distinct SubVIs which are both named SubVI.vi. This is what would occur when you open the two main VIs:
When main1.vi is opened, it is loaded into memory and its subVIs, including SubVI.vi.
When main2.vi is opened, it is loaded into memory as well as its subVIs. When the linker information signals LabVIEW to load SubVI.vi it recognizes it already has SubVI.vi loaded into memory and tries to link main2.vi with the previously loaded VI also named SubVI.vi. If the connector pane is exactly the same, it may load with no errors, but the behavior would be unexpected. If the connector pane is different, you receive a bad linkage error.
For this reason, you should always give subVIs unique names.