In this case, the client gets the full discount, however it appears distributed between all the products in cart. This is one of the drawbacks of the Shopify Price Rules API we are using to generate and allocate discounts to cart.
It's an API launched in 2017 by Shopify, that receives the discount and allocates it to checkout - unfortunately to all items in the checkout proportional with their value. We are in touch with Shopify regarding this issue but we are afraid there is no ETA for a fix.
From what we've discussed with many merchants this is not considered a problem, as more than 80% of the visits and orders are done via mobile, where the contents of the cart is hidden by default in checkout. Even so, we are currently testing out a new Shopify API to generate up-sells - Draft Orders - and this allocates the discounted values only on the corresponding line items.
We intend to fully switch to this new API in the future with all up-sell apps (Volume Discounts, Product Bundles, more to come).