I think this is definitely an America thing, in the UK if you didn't give someone their change back, you'd probably be fired.
Having said that, I've worked as a waitress and in retail and it's entirely possible to do this by accident, even if the restaurant isn't that busy, you could have a manager in your ear, another table asking for help, an order waiting to be taken out, and you can just slip up while trying to do too many things at once (no, I wasn't a very good waitress)
I think your first approach in the first restaurant was right, and it's unlucky that you had a bad experience with it (I'd probably have given my friend an earbashing after we left the restaurant if they told me it was "only 64 cents"- it was YOUR 64 cents) but I'd ask for your money back every time, and if they got shirty with me, they wouldn't get any tip, cents or not.
Also - and this is genuine curiosity not snark here - to all those people saying that they round up or down, does nobody cash up and check the amounts? I would be really surprised if being constantly up/down didn't really annoy the boss at closing time?