One day we will all pay for that. As soon as they can figure out how not to make too many super angry I guess.
That is the problem - creating a loyalty program is essentially making a "promise" of future benefits based on your actions now. So, if you make promises and then take them away people actually have a right to be upset.
However - we all know that "promise" has not stopped some cruise lines from changing their loyalty programs before, so Felix is absolutely right - they should have counted people on a "per night basis" rather than letting them stay at their level. Yeah, it would have been tough on them, but ultimately actually more fair to everyone - especially people who can't take 3 days cruises all the time.