Is it good practice to override simple db_query or EntityFieldQuery with a View I am using several autocomplete fields in a form. To retrieve the data, I have used db_query for very simple queries, EntityFieldQuery for more complex, until I found one that is somehow convoluted, so I used a View and views_get_view_result to retrieve the list of suggested terms. Is it a good practice or am I consuming too many resources instead of digging a little more in my code?
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.