hmmmm. That $COULD be the case, but if it were, the issue should be more prevalent than it seems to be. I've never heard of anyone else having that issue.
The quick fix would be to tweak your initrd file on the hdd to put root on /dev/[sh]da*\. Vector doesn't ship with mkinitrd, but it's available from slackware. If you take a look at my LVM how-to in this section, there's probably enough info to tweak your initrd. If not I can definitely give more advice.
Placing the usb drive into your machine after booting from the hdd definitely shouldn't be reassigning your hdd. udev does keep some persistent naming rules but it doesn't reassign drive nodes once they've been let out. If you already have a /dev/sda, udev won't mount another device on that node.
it's a pretty interesting problem. Could you possibly post some of the log file? Actually, even simpler: could you do this and post the output? You need a root terminal.
1. first without usb inserted:
#blkid2. then after inserting usb stick
#dmesg | tail3. and once again after removing usb stick
#dmesg | tail
and just post the data so I can take a look?