Steve:
Your idea would be fairly automatic as long as the customer gets the same discount on all items. Taxes could be setup to work with this configuration. Customers could be assigned to different tax (discount) groups. It may take some testing to figure it all out but the solution would still be limiting.
Another possibility, again it would take some work to figure this out, might be to use a negative tax on an Eco fee to give you some control over different discounts for different items.