Free Only Small Portion for Combo

To be able to check if a combo added to ticket you can create a specific ticket state for it. For example when order added you can check if it is a combo and update ticket’s Free Drink (or whatever else) state to Active.

So when a juice order added you can check Free Drink state with a constraint (eg. {TICKET STATE:FreeDrink}, Equals, Active) and mark it as free.
Also you can check Order Portion Changed event to remove gift when portion becomes Large.