Hello Sir, I have vast experience to fix this problem on your cart. I believe that that AddOn products are somewhat connected to the products added to the cart. So if this is true, can we go with putting restriction that a customer cannot remove addon products from the cart ? We can on the backend put the addon products on a particular category, in order for the code to identify them and restrict them from putting off the cart and they can be removed from the cart only when the whole cart is emptied / their related product is removed from the cart.
Above I have just pointed out the possible best solutions, but I will provide you the best solution once I check your site, experience with the cart, addons, and other products on your site.
Kindly contact, so that I can gather more info in order to device a perfect plan to execute this fix. I will create a plugin to do this job.