SQLDeveloper only does graphical binds for selects and not inserts as you have pointed out.
Use sqlplus style binds declared with VARIABLE or substitution variables '&'.
If you think this is a serious omittion put in a feature request.
It seems that "Run Statement (ctrl+enter)" (or F9) function for DML changed from 2.1 (126.96.36.199) to 30EA4 (EA3 has the same behaviour to EA4).
In 2.1, one could run insert statement with F9, and it uses a tab titled "Statement output" for its feedback in this case (instead of tab titled "Query Result" for select queries).
Even in 2.1, if one used "Run Script (F5)" to run the insert select with bind, GUI bind didn't appear and resulted in
Bind Variable "variable" is NOT DECLARED.
In 3.0EA4, it seems that "Run Statements" falls back to "Run Script" function in case of DML. This seems, at least for me, the reason that you experience this change in behaviour.