The behaviour change looks to be introduced by the fix for bug 5244057
in 11.1. With this fix the client side calls skgminit() when before
that fix we only called it if OCI_SHARED was specified.
So from 11g onwards any client calling OCIEnvCreate() gets its
RLIMIT_STACK set to 32Mb (unless the hard limit is below this).
It seems fair that the client side should either not mess with
RLIMIT_STACK, or if it does then it at least allows the client
to set some minimum limit of its own .
The workaround is to reset the RLIMIT_STACK within the client
program, but this is not always possible.