Version 3.50 already has some enhancements. It allows to specify to which quantity a discount is applied. But it has quite limited functionality (not applied multiple times, not automatically added) -
Notifications about discounted products and automatical way to add "free" products. One more 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 requirements, etc). 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.