I did the same test and I got the non-zero dbhandle values from both (same value, btw). If the dbhandle was indeed zero, I would routinely get 'not connected' errors from those threads using raw sqlca, right?
I found out what is happening in our task manager. 100% of the threads get their own db connection when they start running. A few chose to ignore their own connection and use SQLCA instead. These threads still work, but they may collide with work being done in the main thread.