hmmm… yes the customer should get a worse deal if they add a cheap product
your point 2 is a desirable behaviour and common sales strategy: when cheapest is free, the customer knows that it is not a great advantage to add cheap item so they may upgrade to more expensive item to get the most benefit from the offer.
If the customer can get expensive item free just by adding cheap item, there is no upsell value. Giving away expensive item when cheap item is added sounds very bad from the shop owner’s view, and the sales tools are not supposed to make a loss for the shop.
In your example the shop owner has to give away a $100 item when a $20 item is added, that doesn’t sound good business.
Apart from this discussion in the context of every_nth_item, what about cheapest_product, what is needed to make the cheapest_product option work? – I couldn’t get that to apply in any circumstance and I couldn’t find any more detail in the documentation.