Noticed the following:(on asktom)

CREATE OR REPLACE package test1 AS
default_val VARCHAR2(1) := 'YY'; -- note wrong size !!!!
PROCEDURE test_default (A VARCHAR2 DEFAULT default_val);
END;
/
Package created.

CREATE OR REPLACE package body test1 AS
PROCEDURE test_default (A VARCHAR2 DEFAULT default_val) IS
BEGIN
dbms_output.put_line('A=' || A); -- simple dbms_output replacement
END;
END;
/
Package body created.

begin test1.test_default ; end; -- 1st execution

begin test1.test_default ; end;
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "SYSTEM.TEST1", line 2
ORA-06512: at line 1

begin test1.test_default ; end; -- 2nd execution (or type another /)
A=

PL/SQL procedure successfully completed.

SQL> begin test1.test_default ; end; --3 rd. execution
2 /
A=

PL/SQL procedure successfully completed.

i.e Afer throwing an error on the 1st attempt, it runs perfectly !!
!! --> second and subsequent runs from the same session
consider wrongly intialized package constant as NULL
without any exception !!

Looks like failed constants are left in memory (shared pool ?).

Can someone throw light on this as Tom's raised a bug on this no.3616159 - if it's been resolved - do not have access to metalink right now !!

Tried on v. 9.0.1