shipping and tax are only calculated when the user goes from the checkout page to the confirm page.
if they make any changes to the cart items, they must pass through the checkout page again before proceeding to the confirm page. It is the post from checkpout to confirm that triggers the shipping and tax to recalculate.