Perhaps I can solve this........
At a regular restaurant in your hometown, a waiter has a certain number of tables that he has for each shift. People come in and fill those tables up. He gets a tip from those people. If you don't go to that restaurant, someone else will and tip that person.
On a cruise, if you don't go, that table doesn't get filled. Therefore, he does NOT have the opportunity to earn his tip from someone else.
I own a business and when I schedule someone for a shift, I pay that person for their entire shift. Sometimes its slow and there's no work so she reads a book. I still pay her because I asked her to be there rather than be somewhere else.
Same scenario with the cruise.......by signing up for the cruise you have, in essence, asked for the wait staff to be in the dining room to serve you for all three meals. Whether there is "work" for them to do is irrelevant. You still have to pay them.
I know it may seem you are paying double for tips but you are paying for one person to actually serve you (that is, where ever you have chosen to eat that meal) and the other person to be AVAILABLE to seve you.
Did I solve it?