Could it be that your Oracle user has a synonym, a view, or a table with the name V$SESSION? This would explain the different results when querying the sys.v_$session view.
The complete Program Window will be saved, including the package specification and body if both are present in the Program Window. There are 2 solutions:
Open the package body and specification in separate Program Windows.
Thanks for the reply. I will try that. And i realised that i can close a workset before closing the PL/SQL Developer. This also prevents "loading last workset" (and probably problem #1).