I'm experiencing this issue in Hibernate 4.2.1 Final
In out case we've got a IN placeholder as the last part of a sub query.
SELECT column_one, (select count from XYZ where column IN :parameterList) FROM ABC
The code in org.hibernate.internal.util.StringHelper.replace(String, String, String, String, boolean, boolean) on line 168 checks to see if the placeholder has both an opening backet in front of AND a closing backet after. If both of these criteria are not satisfied no backets are inserted.
A similar check to this is done in org.hibernate.internal.AbstractQueryImpl.expandParameterList(String, String, TypedValue, Map) on line 790
Hibernate doesn't realise the closing bracket after the placeholder belongs to the sub query.