Es correcto, pues aunque tu base y tus documentos html y php estén en utf8, el servidor tiene que recibir mediante conexión y devolver los resultados. Tú debes decirle cuál es el charset de tu base, con qué charset debe conectarse a ella y en qué charset debe devolvértelo. Y si lo quieres todo en UTF8, lo que debes hacer es usar la expresión "SET NAMES 'UTF8'", algo así como un tres en uno: la utilizas para no utilizar otras tres.
SET character_set_client = 'UTF8';
SET character_set_results = 'UTF8';
SET character_set_connection = 'UTF8';
Aunque es posible que lo hayas visto ya, mira aquí:
http://dev.mysql.com/doc/refman/5.0/...onnection.html
Cuando los servidores trabajen con utf8 por defecto, no necesitaremos usar esas expresiones para trabajar con UTF8, pero por ahora es lo que hay.