Current logic for selecting optimal fleet for the run (#2967) considers fleet existing instances. If fleets don't have enough instances and provisioning is required, then it's necessary to consider backend offers that can be provisioning with the fleet because fleet spec is combined with run spec to get requirements (#2969). To choose an optimal fleet, we need to get offers for every candidate fleet. This is currently expensive since offers cache is not reused for different requirements.
If this is implemented efficiently, we may also consider respecting fleet spec when returning offers in run plan, e.g. by returning offers list for every candidate fleet.