The problem is AFAIU not exactly how many Scsi_Host instances (initiator port representations, or something remotely related to that) are instantiated, but rather _when_ they are instantiated. On multi protocol buses or networks like USB and FireWire, it makes sense to create the SCSI initiator port representation when we discovered that there are actually SCSI targets on the bus or network.
scsi_scan's API
is geared towards drivers which create one or more initiator port representations right up front before going on target discovery, right?--