If Sue has had the time to follow up, it apparently did not manifest as a new bug. I did not check for any old bugs.
Anyway, the change in behavior was probably intentional to improve internal consistency in the tool. For errors in anonymous blocks in a worksheet, neither 2.1 nor 3.0 brings up the compiler log. Any error message displays only in the script or statement output tabs.
As for package, function, and procedure definitions, the first attempt to execute the DDL in a worksheet results in a new node of the appropriate name and type appearing in the Connections tree view (whether the compile succeeds or fails). This may require a "Refresh" for the object to display in the tree. If there is some issue during compilation, the 2.1 output tab shows, for example,
PROCEDURE XYZ compiled
Errors: check compiler log
whereas the 3.0 output tab shows
PROCEDURE xyz compiled
Warning: execution completed with warning
Subsequent create invocations (without the "or replace" syntax) results in a "ORA-00955: name is already used by an existing object" error, hinting that opening the PL/SQL editor on the object from the Connections tree view is really the appropriate action to take.
Notice also, in the 2.1 compiler log, that right clicking on the error and selecting "Go to Source" does nothing for PL/SQL code executed from the worksheet. It only goes to the proper source line for code compiled from the PL/SQL editor.
The tool, by pushing you toward use of the PL/SQL editor, is probably doing you a favor. The PL/SQL environment is a superior development environment as compared to the worksheet trying to emulate SQL*Plus. For example, some SQL*Plus features (such as variable declarations for use as bind variables) are not fully implemented in SQL Developer. The implementation of the PL/SQL context seems much more solid.
Gary Graham
SQL Developer Team