I got intrigued by this last night so had a little look over the code in case I could help but didn’t reply as I found nothing too useful. Decided today it may be of use if for nothing but ‘two minds are better than one” and all that…
That plugin uses a few woocommerce hooks to add the content for gift wrapping to the cart (the text stuff) and adjusts the actual product price if gift wrapping is selected. This is why it works as you stated because the discount is being applied to the product and the products price has been modified (the gift wrapping cost is not separate in any way).
You may be able to remove the filters that edit the price of the product, modify the filters that edit the display text to suit your needs (if I remember correctly that plugin does not display the gift wrapping price on the cart itself) and then utilise something like this on a later hook to add the gift wrapping fees to the cart (sometime after the discount is applied). The problem with this is I don’t know when you would need to add your custom fee and also you would have to filter the price displayed to match the additional service every step of the way before the customer checks out. (May be simple but I’m unsure without really digging in).
Another option would be to add the gift wrapping service as a stand alone product and programmatically add it to the cart (again using filters to adjust the way it is displayed if needed) when a product has the checkbox ticked. Then you should be able to filter which products the discount applies to and avoid the service.
Both seem a little hacky to me so I hope someone else jumps in who can provide a better answer! But I hope that helps a little…
Kind regards