Right, this is my last post on this one. Including a column in the outer projection seems to help. Without it, there is no projection at all. I still think this is a bug as I can't see what difference this could make as the plans are the same.

Code:
SQL> exec dbms_session.reset_package;

PL/SQL procedure successfully completed.

SQL> SELECT package_name.get_a,
  2         package_name.get_b,
  3         some_col
  4  FROM  ( SELECT (CASE
  5                   WHEN 1 = 1 THEN
  6                     package_name.set_a_b (1, 2)
  7                   END) AS some_col
  8           FROM   dual
  9           ORDER BY 1);

     GET_A      GET_B SOME_COL
---------- ---------- ---------------
         1          2 COMPLETE
I like the object type method best ;o)

Regards
Adrian