Different uuid versions are guaranteed not to clash (since there are bits reserved to specify the uuid version)
Provided a namespace per vo+fts3 (i.e. md5 hash of the vo name+fts3 name), and using any random value provided by the VO (i.e Rucio internal request id), then the uuid will be unique (with high probability, of course), and will be reproducible. Therefore, Rucio will be able to double-check if the job was submitted or not if they missed the confirmation.
Even if they didn't, if they resubmit, this feature will avoid duplicated transfers.
Other VOs will not care, since they will keep using version 4 (random)
Of course, we give away the guarantee of uniqueness in time, and delegate this to the VO, since once the job is deleted from the DB, it could be reused.
From FTS3, this could affect the backup table, though, if they reuse their id after the job lands in it. We could either check on submission (how fast would that be??) or need to be resilient to duplications when running the backup (ON DUPLICATE IGNORE ?).
Rucio will need to take care by themselves about possible duplicated job ids separated by long periods of time. I doubt that would be problematic, though.