Hi,
I found the following Official Documentation where it is explained that the scenario where a query needs to look up all the rows in a table is one of the worst cases, so in my understanding it is a practice to try to avoid and not recommended.
Regarding your concern about how to avoid it at a query level I found this Best Practices documentation where it is explained that one way to avoid this full table scan from happening is by defining a secondary index.
I hope it helps.