Sticking to the rules

R and I had supper at a restaurant which usually gives us 50% discount when we use a certain card*.
However, this time, we only had one main course and one starter and drinks (as I wasn’t feeling too hungry). When the bill came, the waiter told us that he couldn’t give us the 50% discount, as we needed to order two main courses first.
So we ended up with a silly situation: If we paid up then, our meal would have cost about $50; if we ordered an extra main course (at around $20) the meal would have cost $(50+20)/2 = $35
We thought we could order a pizza and bring it home. The waiter said no, we must consume the pizza on the premises (!!!). We decided that we should still order the pizza anyway and eat what we can, because it would save us $15.
Because this waiter stuck so firmly to the rules, his kitchen would have to cook an extra dish which we would barely eat. If the pizza cost $10 to make (ingredients and labour), that would be the restaurant’s loss. If he just gave us the discount without forcing us to order an extra main dish, the kitchen wouldn’t have to cook a new dish, and he would have freed up 2 seats (i.e. the opportunity cost of serving more patrons) instead of making us wait around longer.
To avoid wasting the pizza, we told the couple sitting next to us that they could have some of it too. They seemed happy with that.
However, 30 minutes passed and no pizza arrived, and the couple beside us left. On checking, we were told by the same waiter that the kitchen never received our pizza order. He looked sheepish about it, and offered to give us half price off our existing bill (without the pizza).
Now, it made me think that two things may have happened:
1) The waiter knew he couldn’t bend the rules for this special restaurant card we had. But he did have leeway in giving disgruntled customers a discount. So he let our order lapse, and compensated us with the 50% that we wanted, in the first place. His kitchen didn’t have to make a pizza. Clever!
2) The waiter really was a stickler for the rules, and genuinely forgot our order. We think this is more likely the case.
But still, it’s literally given me food for thought – when should we stick to the standard operating procedures, and when do we close one eye to avoid putting both parties in a worse position?
(* Note: I’m not sure how this discount system works behind the scenes, but think that the card company compensates the restaurant for the discounts given, as the membership fee is pretty high)