It could be considered bad practice in some cases. But having the template also act as a controller gives theme developers more freedom to make something outside the golden path.
I doubt Wordpress would be used for anything other than simple blogs if it weren't for querying from templates.
Obviously there is the risk of theme developers loading tons of queries from a template but I think trying to prevent that would be premature optimization. The benefit of greater customizability outweighs the potential performance hit IMO.