This may seem like a WooCommerce defect, but it is not.
The correct way to process a refund, is to
- Click on the refund button in the lower left area of the order
- On the order line items, indicate which line items and the associated quantity to refund
- WooCommerce will calculate the refund amount and taxes
- Indicate of shipping is to be refunded.
See diagram below: