nalin,
When it is saved, a VI makes note of the paths where its subVIs can be found. When it is closed and reopened, the VI looks for its subVIs in those saved locations, and it only begins searching other locations if it cannot find a subVI at the expected path.
So, in your scenario, the main VI can still find all its subVIs in the expected DIR1, and it has no reason to go looking in DIR2 or anywhere else.
If your objective is to replace all the subVIs with modified versions, then what you need to do is archive the old versions (copy them elsewhere) and then overwrite the originals (DIR1) with the new versions (the DIR2 versions). Now, the main VI will automatically load the newer subVIs when it is opened.
Up through the current version of LabVIEW, VI names have been extraordinarily important, because they are the only cue that LabVIEW uses to determine which is the correct subVI to load. This has caused some headaches, both for users and even for NI developers, as demonstrated in another active thread here about a conflict between a daqMX VI and a Report Generation VI with the same name. NI will probably address this problem in a future LabVIEW release. In the meantime, you should avoid creating multiple independent VIs with the same name on your filesystem, unless they are archived versions that you don't plan to work with again.
Regards,
John