Нет, это не вменяемая идея: -)
Код GWT должен обрабатывать логику представления. То, как данные отображаются на уровне представления, не обязательно совпадает с тем, как эти данные хранятся в базе данных, а уровень представления не должен даже знать, что Hibernate используется на уровне доступа к данным. Создание объекта Criteria - это роль уровня доступа к данным.
Я бы просто использовал какой-то DTO, содержащий критерии поиска, передал бы этот DTO моему уровню обслуживания, который передал бы его на уровень доступа к данным (с потенциальными дополнительными критериями поиска в зависимости от контекста), который бы создавал Hibernate. Критерии объекта.
Подумайте об этом: представьте, что в будущем запрос должен быть выполнен на HQL или SQL из-за ограничений API Criteria. Будет ли нормальным полностью менять уровни представления и обслуживания?