Using backup/restore with Eventing seems to work, but the admin/global Function Scope exhibits some odd behaviors. They seem to be upgraded and overwritten If and only if they are undeployed or paused. Both in terms of "listen to location" and "bucket bindings"
For testing I do a full backup then I do a restore with
"Map Data" of "b1.bulk2=b1.bulk3"
"Include Data" of "b1"
If we have a "Function Scope" of * . * we should never overwrite the function if we restore to the same bucket (but a different scope). Perhaps we should try to make a duplicate function:
<function_name>_clone or if that exists <function_name>_clone1 etc. etc.
Attached are 11 images 00_* to 10_* showing the restore behaviour. Pay attention to 07_* and 10_*