Details

When the system has more than a single PCI domain, the bus numbers
are not unique, thus they cannot be used for "pci" device numbering.
Change bus numbers to -1 (i.e. to-be-determined automatically)
wherever the code did not care about domains.

Here is the list of files containing secondary bus attachments, with my comments.

If you fix pci_pci.c you need to fix all the rest. Otherwise you can end up with a pci_pci pcib device using a unit number via -1 that another driver expects to be able to use via a hardcoded unit number. (Suppose the firmware enumerates a host-PCI bridge with higher numbered buses first for example).

All of the ones in your NOT FIXED list need to be fixed. In addition I think these should also be looked at more closely from your GOOD list:

The sb_zbpci.c driver is abusing the unit number of pci for the PCIB_IVAR_BUS ivar. While that does work, that is
really gross. However, it does mean that fixing it would be more involved as you'd have to fix the ivar. Perhaps too much work for now.

octopci.c looks like it can just use -1 instead of device_get_unit() and be fine.