These are all very good reasons why a business may not want to accept cash. Cash adds a lot of overhead and security risks that can completely negate any savings gained by not having to pay credit card fees.
The problem is that if enough businesses stop accepting cash, then it becomes nigh impossible to participate in society if you can only pay in cash. Which can be a big problem in the US, where not everyone has access to credit cards or free checking accounts.
This is why I support regulation that requires businesses to accept cash. Yes, it adds overhead. But it also means the most vulnerable in our society are actually able to buy things.