As far as I can work out, the phenomenon is as in title. I've traced the entire entity loading process from both
commerce_cart_order_load() and all I've managed to conclude is that the line item prices are processed somewhere else and are merely loaded.
Basically, when the shopping cart block is shown first, the price is correct any place it's shown. However, if something else that shows a calculated price, particularly a formatted price field, is displayed first, only that price will be correct, and the shopping cart will skip the rules.