Anonymous Users to view PRODUCTS
It sounds like you aren't very clear on what that permission does vs. how products are displayed. I'm guessing here that you're using Drupal 7. If so, it seems your problem is you're trying to expose the admin paths to products to customers, but those paths aren't intended to be viewed by them. Instead, you're supposed to create either a View that renders product entities directly or a node type with a product reference field on it that functions as what we called a product display. When you attach a product reference field to a node type, it supports embedding product fields into that node while rendering the field itself as an Add to Cart form.

There are a variety of tutorials / guides to understanding and implementing this on the project website: https://drupalcommerce.org

When you need to grant that permission and / or disable SQL rewriting is when you have a View that creates a relationship between your node type (or order line items) to product entities. In that case, though, the View should have additional filters on it to apply appropriate access control so customers only have access to view in that context the products or line items they should.