However this may end up, isn't it offtopic? Whatever we do we have to support both pci_addr= and default placement, so we can push this discussion to livirt-devel and bid them godspeed.Presumably you're not proposing that qemu-devel completely ignore the typical requirements of management apps?
You can push the discussion to libvirt-devel, and the conclusion would most likely be: "We can do slot allocation if you provide us with a way to query free slots, or we can use qemu's default allocation if you provide us a way to query the allocation. We'd prefer the default allocation problem, but we don't really care. Both require about the same amount of work for us."
libvirt was only mentioned in this thread as a concrete example of how the suggested solutions would actually be used by management apps.
-- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.