Maybe I'm a nut, maybe I'm a hypocrite, but I think INTENTIONS play a big role. Obviously, I'm no lawyer, because in a court there's NO WAY to know what someone's intentions were. I'm just talking the IDEA of morality.
In my little mind, I agree with you in this instance. It was an accident, you didn't intend to not pay for it, and the CM didn't intend to cheat his employer. In my little mind, I wouldn't think it would be worth it to go back and try to pay for it. It happened, and if I were in that situation I'd just let it go and drop it. I'd consider it my lucky day and have a clear conscience.
But if I purposely evaded paying for the sandwich and I knew that the rule was that I should pay for it, then I wouldn't have a clear conscience, I'd feel, well ... guilty! The practical result is the same either way -- FREE SANDWICH!!! -- but again, in my little mind, I see a moral difference between an honest mistake and knowing I'm breaking a rule as I'm doing it.
Does this make me a hypocrite? I don't know, but this is the line I draw for myself. I can't draw this line for other people, because I can't know their intentions. But it's how I help guide my own behavior.