Filter is definitely not a secure method of protecting data. Tech smart customers could still snoop the underlying data of other users. I would still use Row Owners, but instead of asking row owners to a role, you simply apply row owners to a customer email address in the quotes table. If Contractor, Estimator, Admin also need access to the same data, and they still have a Role through user profiles, then you can add 3 additional columns in the quotes table and apply row owners to those columns as well. Then fill each one with Contractor, Estimator, Admin as necessary.
Since you would be using the customer’s email for row owners, then they wouldn’t be considered a private user.