is it actually important ?
i might understand something wrong here, but what i would expect is the following:
the setup will need a custom gadget anyway … in that custom gadget i’d imagine to have two serial definitions:
foo:
interface: serial-port
usb-vendor: 0x0403
usb-product: 0x6015
usb-id: DM007FNY
path: /dev/serial-foo
bar:
interface: serial-port
usb-vendor: 0x0403
usb-product: 0x6015
usb-id: DM007X1O
path: /dev/serial-bar
now one of the application snaps (your safe door app) connects to pi3:foo and /dev/serial-foo the other (garage door app) to pi3:bar and /dev/serial-bar …
due to the ID it will always be the right dongle for the right task.
as i understand it the udev based serial interfaces actually create udev rules so plug/unplug events should DTRT and set up the respective /dev/serial-* symlink dynamically.
(or is that not the case ?)