Well, it's the cruise line's rules and as long as people play by the rules then there isn't much to say about it. RCI has a similar policy. A person can currently make diamond level at RCI by booking a suite on five 3-night cruises. That gives them two points per cruise and the magic 10 points with 15 nights aboard an RCI ship.
Frankly I made RCI diamond level in less than 10 cruises because of the extra credits for a suite. Most of our Carnival cruises have been less than 7 nights, but then most of them have also been in a category 12 suite. Shouldn't the suite count for something too? Bottom line is I've paid a lot of money to both lines - perhaps more than someone who booked 10 7-night cruises in the cheapest inside cabin.
Princess probably has the "fairest" loyalty program since they look at sea days.