НУ, во-первых, если клиент не понимает WITH, то его обманывают вот так:
SELECT *
FROM (
WITH t as ()...
select * from t
)
Во-вторых, нужно помнить, что IN всегда можно заменить на EXISTS или даже на JOIN.
В-третьих, без текста запроса и без его плана - это вообще разговор ни о чём...