Symptoms
The site is set up to allow free shipping on items with no weight set, but 0-weight items are still being charged for shipping.
Cause
The software automatically assigns a weight to products that don't have one set individually.
Solution
Set the MinOrderWeight AppConfig to 0.