If you are the only one that has access to the register then I would say yes, they can. I would discuss this with my boss if it is something that has not happened. If it has already happened I don't know what to tell you other than talking with the labor board if you feel you have been treated wrong.
Yes. Very common. Its done to discourage petty theft, among other reasons. An employee is much less likely to pilfer from their employer if they know itll be taken from their check later. Its up to you not to make mistakes - or to not steal.
If it's in a contract that you sign they can take it out. However if you did not sign an employee handbook ( computer counts) stating that they can do that. They are not allowed to take it out of your check. Unless your state labor board says otherwise. I was a business owner so review your handbook first if it's not in there contact your state labor board.
No. I've worked at various grocery cashier positions and the average my register came up short was about 5 cents to about 50 cents. I believe they're not expecting every register to come up perfect with the amount of customer and business. The percentage of sales and the amount of shortage or even overages usually balance out.