USA law says they must visit a foreign port “
That is a curious law. Why? I thought maybe Alaska cruises could just leave from Seattle and not stop in Canada. When we went on ours l don’t think we stopped in Canada. However we did leave from Vancouver.
Nope. Not according to the law.
If they were American flagged, they could do that, but almost all cruise ships are foreign flagged and can't do that legally, unless they visit a foreign port before returning to the USA.
There is an American flagged cruise ship in the USA state of Hawaii that does cruises from there, and because it is American flagged it can do cruises around the Hawaiian Islands legally, without having to visit a foreign port before returning to it's homeport in Hawaii. -Tom
To be US flagged the ship has to be American made, cruise ships aren't made in the US, and US crewed. So existing cruise ships can't be American flagged and a US crew would be a serious disadvantage. The net effect today, the cruise industry aside, is higher freight rates for US to US ship transit. One of the reasons US "exports" are expensive in Puerto Rico and Hawaii. If your Alaska cruise left from Vancouver, that's the foreign port required.