Is it good practice to override simple db_query or EntityFieldQuery with a View
There is no simple answer possible to this question because it very much depends on circumstances. The customary response to such fears is to invoke the spectre of Premature Optimization and to advise you not to worry until you know you have a performance issue.

However, from an educational perspective it's probably worth at least looking at the query Views is executing and considering whether it is efficient: is it scanning every row of a large table because of the lack of an index, for example.

On the Views settings page there's an option to display the SQL for a query. You can copy and paste it into a tool such as PhpMyAdmin (removing the curly brackets peculiar to Drupal SQL queries) then put "EXPLAIN" in front of it to see what's happening under the hood.

But in general I would not bother to rewrite a query like this until there's a proven need to do so.