udev and a rule similar to this:
ENV{SUBSYSTEM}=="video4linux", ENV{ID_TYPE}=="video", ENV{ID_SERIAL_SHORT}=="0582C6D0", SYMLINK+="video-ibm2", GROUP="video"
ENV{SUBSYSTEM}=="video4linux", ENV{ID_TYPE}=="video", ENV{ID_SERIAL_SHORT}=="A6D77E9F", SYMLINK+="video-pr1", GROUP="video"
ENV{SUBSYSTEM}=="video4linux", ENV{ID_TYPE}=="video", ENV{ID_SERIAL_SHORT}=="9EAC29D0", SYMLINK+="video-pr2", GROUP="video"
I don't know if that rule still works,I last used it 8 years ago. But something similar should still work. And at least the logitech cams do seem to have a serial number.
udevadm info /dev/video0 will dump the info. If you want to be avoid udev, you could use the SN from the info command and create another device in /dev with the name you want and the same major/minor number (using the mknod command) (major/minor is in the info command). Say start at /dev/video20 or something similar.
udev is the clean way to do it, but udev is more difficult to debug if it does not work, and I have been burned by udev changing semantics enough to do it the crude but easier to debug way.