query_posts() и get_posts() внутри работают с WP_query объектом. В этом году про некоторые тонкости выборки и отличия был доклад на wordCamp 2014. В сети доступно видео, можно найти.
По поводу скорости, то тут нужно посмотреть SQL запрос итоговый и посмотреть попадают ли искомые поля в индексы таблиц, которые будут в запросе использоваться. Ну и explain на запрос можно прямо выполнить, чтобы об эффективности говорить. На небольших таблицах это будет однозначно работать быстро.