The discount you give to a product (that has a list price set to zero) will always be based on the initial price that you added when saving the order for the first time. So even if you update the price of the product, the discount will always refer to the initial price that the product was saved with.
Here's how it works:
- Add a new product to your order with a price of zero.
- Set the price to €100.
- Set the discount to 50%.
- The price of the product is now set to €50.
- Save the order.
- Open the order again.
- Increase the product price to €200.
- Set the discount to 50% again.
- The product price is then €50 because it's based on the initial price (€100) of the product which you set before saving.
To reset this feature, simply delete the first product from your order and add the same product again to your order.