Defaults are used when you do NOT specify a value.
If the application is providing a NULL value, then we will *use* that, eg
SQL> create table t ( y int, x date default sysdate );
Table created.
SQL>
SQL> insert into t (y) values (1);
1 row created.
SQL> insert into t values (2, date '2000-01-01');
1 row created.
SQL> insert into t values (3,null);
1 row created.
SQL> insert into t values (4,default);
1 row created.
SQL>
SQL> select * from t;
Y X
---------- ---------
1 06-DEC-16
2 01-JAN-00
3
4 06-DEC-16