I would just remove the shipping row from the shopping cart display on the cart page. Shipping isn't calculated until the checkout page, so any value displayed there won't reflect any updates made to the cart.
The session destroy is on the checkout success page, so by not proceeding to that stage the session destroy code doesn't run.