It's quite simple, nothing misterious here. You have created this constraint as deferrable - look at the vaue of column DEFERRED in your DBA_CONSTRAINT query!
In this case columns belonging to PK are not implicitely set to NOT NULL by the constraint creation command, which is quite normal and logical. So even if your constraint checking is not deferred, the PK columns have no NOT NULL condition. As a side effect, optimizer will not recognize an index scan to be a viable path to satisfy your query and will insist in table scan. If you want to avoid this you'll either have to set this PK to NOT DEFERRABLE or to add column NOT NULL constraints explicitely.
Jurij Modic
ASCII a stupid question, get a stupid ANSI
24 hours in a day .... 24 beer in a case .... coincidence?