App loyalty cards, while still having some information on you, are largely about large merchants (ie starbucks) avoiding credit card interchange fees by giving rewards for people who load money to the app and purchase from there.
So, all incentives are not against consumers. The merchants avoid the credit card oligopoly fee and pass on the rewards to consumers.
By having a punch card and forcing customers to use cash? While cash is making a come back in many places, there are still plenty of potential customers who would not buy if cash was required.
At this point I think I am unaware what a punch card is. I was assuming a card that gets punched each time you visit a place, and after N punches you get an item for free. Is that right or totally off?
So, all incentives are not against consumers. The merchants avoid the credit card oligopoly fee and pass on the rewards to consumers.