Hi,
No worries. First, normally you only have one cart, the current cart. And thus no need to pass the cart_id.
It's only used for rare cases, like custom plugins, or HikaAuction to override the current cart to handle with another one.
And in that case, it's the same cart for the whole processing of the page since you only have one checkout interface per page.
So the cart that the initial instance is cached and provided regardless of what you supply the constructor is actually done on purpose so that once the checkout instance is initialized with the correct cart, regardless of whether other pieces of code have the correct cart_id, they will base themselves on the correct cart that the current page is handling.
Thank you for your concern.