Version 3.50 already has some enhancements. It allows to specify to which quantity a discount is applied. For example, you have 3 products in the cart but discount is applied only to the first item. The issue is that you have to manually add "free"
product to the cart. So we need to find a way to notify a customer about this free product. We should show a message on the product page i.e. "Buy one more and get a free gift" or "Buy product Y for a discount" etc
We only way to implement it is the following. Load ALL products on the shopping cart page. Calculate price for EACH of them considering discounts and all possible discount requirements. If price is 0 and some discount is applied, then add this product to the
cart. But it'll simply kill the performance. Of course, we can implement kind of rules (e.g. "if product 1 with qty 2 is in the cart, then add qty 3") but this way we'll lose all advantages of "Discount" entity (e.g. start/end dates. discount
Of course, we can also use tier prices to apply such discounts. It's the easiest way to go if you're talking about the same products.