My point is that you simply do not want Oracle to flush the shared pool. Doing so will kill your performance because of all the extra time that will be reused simply parsing SQL because all of the stored execution pans are lost.

What you are seeing is NOT a problem. It's simply how Oracle manages the memory in the shared pool. Don't worry about it. :)