Nothing happens on a ship without approval from head office.
We have had various experiences with missed ports. Some were due to inappropriate weather, some due to ship systems failures, some due to Covid, sometimes more than one on the same cruise. As a company you have do do whatever you need to keep the customers happy and more importantly keep them coming back.
You are correct that any negotiation has to be done before you get off the ship.