Reading the docs you linked, I wanted to add my 2 cents, dunno if it’s useful or not in that case.
I have an AMD RX580 (no FLR support) passthrough’ed to a win7 domU, and rebooting it (or a crash) would cause the device to be in [b]locked state and couldn’t be re-assigned, even to the same host.
The sys bus removal trick wasn’t enough in my case, I had to also rescan the bus to recover the device, so:
echo "1" | tee -a /sys/bus/pci/devices/BDF/remove
echo "1" | tee -a /sys/bus/pci/rescan # this part is not in the docs
Unrelated to the PCI bus problem, but which may be of use about the “USB lock-ed out” problem, I found this post contains a method which could be useful. It’s about to PT devices sharing the same driver.
As I understand, the problem mainly happens on desktops, and if I’m correct, many platforms have two USB controllers (one on CPU, one on MoBo). With this method, you can PCI-PT one USB controller to a domU while keeping one for dom0. It’s what I use on my machine, and it works to PT an additional SATA controller to a domU too.
Edit: the link is about KVM and vfio-pci, but the steps are the same with Xen and pciback.