Quite frankly, the reason it's more expensive is convenience. Much like how peak time trains are more expensive than off-peak because it's more convenient for commuters to travel then.
I rarely buy stuff at a station anyway, because I don't really enjoy coffee and even on a 2 hour journey I'm not liable to eat more than maybe a bar of chocolate which I can buy on board or pack myself, but if I do fancy something hot (for instance, if I'm travelling mega early and I didn't have breakfast before leaving) or just feel a little peckish, I'll buy something at a station. I expect it to be more expensive, of course I do, I'm in a station.
Even without the bite card discount I buy stuff, but 20% off was a nice little extra for a freebie and perhaps it did tempt me to buy more often. Now it's down to 10%, I'll probably still use it, and not even reduce my usage. As I've already mentioned, I don't mind paying a bit extra for convenience and at the end of the day, even 3 quid for a cup of tea here and there is hardly spend of the century!
It does smack a bit in this thread of members cutting off their noses to spite their faces, given they're getting something for nothing. Yes, they get my information, but quite frankly, if anyone wants to know that somebody with my name of my age lives at my address and travels by train every now and then, they could look it up anyway. I might as well get a free discount card out of it!