A user creates a new Order adding an Order Line with Quantity and Free Foods. The user selects the Assortment record on the Order Header. The Free Goods disappear from the Order Line and are set to zero.
When Product Bound is checked on the Assortment record, it means that there is a strict verification done on which Products are available in the Order. This requires the Pricing Engine to run the Smart Edit function. This recalculates the Pricing Rules when a user changes a value on the Order Header for Order Date, Contract, Campaign, Price Book, and (Product Bound) Assortment. When the rules are recalculated, Free Goods are reset to the default setting if there is a user override.
This is working as designed.
Non-Product Bound Assortments do not impact this process and do not change the way the Pricing Engine works.
CRM Help Documentation: Order Assortments