Thanks a lot for the help.
So, fisrt if you know - how can I duplicate the calls that are made via OCI?
When I run the code via SQL plus, I get the results you get. But when the same query was run via application that uses OCI, then I get nothing.
Only on 10.2.0.1 I was able to reproduce it via some tools like DBVisualizer and ORaEdit, and sqlPlus.
Secondly, here is the explain plan form 10.2.0.1 machine:
SQL> SELECT ENT_ID FROM ADDRESS_test WHERE
2 (UPPER(CITY) LIKE 'LAS%' AND UPPER(STATE) = 'NV' AND SYS_DELETE_DT IS NULL) OR
3 (UPPER(POSTAL_CODE) = '99999' AND SYS_DELETE_DT IS NULL) OR
4 (UPPER(POSTAL_CODE) = '88888' AND SYS_DELETE_DT IS NULL) ;

Execution Plan
----------------------------------------------------------
Plan hash value: 3645838471

----------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 994K| 21M| 5922 (3)| 00:01:12 |
|* 1 | TABLE ACCESS FULL| ADDRESS_test | 994K| 21M| 5922 (3)| 00:01:12 |
----------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("SYS_DELETE_DT" IS NULL AND (UPPER("POSTAL_CODE")='99999' OR
UPPER("POSTAL_CODE")='88888'))
I do not see here the city predicate at all? How this is posible?
Thanks a lot, mj