Are we talking about IN clauses that contain a correlated subquery or something the optimizer would have a hard time determining was independent of outer context?
PostgreSQL is able to convert correlated subqueries with IN () clauses into joins in most cases. My guess is that it could have been two queries refactored into one.