Do not use free product for promotion
A product with a unit price of zero should never have a promotion applied. Also most of the time, it will prevent the promotion to apply because the price with promotion will not be lower than zero.
So for me, such free product (ex: from sale_extra) should not be considered for the application of the promotion.