Будет ли эффективно секционирование в СУБД PostgreSQL в случае, если принцип разбиения таблицы на секции и критерий выборки не совпадают?
Насколько я понимаю, толк от секционирования будет только в том случае, если упомянутые принцип разбиения и критерий выборки совпадают. 
Абсолютно правильное понимание. 
Одним из решений таких задач является введение избыточности: для ускорения выборки вы дублируете информацию в несколько таблиц и секционируете таблицу под конкретный запрос.
Либо вы проводите какую-то дополнительную агрегацию или уменьшение данных и храните в отдельной таблице. Опять же под запрос.
Либо вы делаете функцию партиционирования по нескольким полям, но это надо смотреть запросы. Будет работать только если фильтры запросов являются подмножествами друг друга
А с помощью explain analyze проверяли медленные запросы? Может быть, достаточно было бы просто создать нужные индексы - и запросы выполняться стали бы гораздо быстрее? Просто, насколько я знаю, секционирование обычно делают на гораздо больших объемах записей.