А проверь-ка на простом запросе, что такая реакция именно на 2 и более символов '$' в имени таблицы. А то есть еще подозрение, что тут скорее на использование одного и того же параметра несколько раз.
ЗЫ. Ну и сами запросы, как мне кажется, можно упростить. Для начала, можно избавиться от case'ов. Они, как мне кажется, просто не нужны.
Код:
case when :value = '{}' then true else false end
тоже самое, что просто
Да и
тоже, вроде, всегда долдно возвращать true.
Если только ты не пихаешь в параметр запрос в текстовом виде, но такое тоже не должно работать.