The answer to your question NO2 is Yes. Here the 'free memory' refers to shared_pool.
I have similar problem with my database too. I have to do alter system flush shared_pool almost everyday. Alternatives are to increase shared_pool, but it constrains by the server memory. Since we don't have enough memory on server, I have to flush memory.Of course, you have to tune your sql statements make it as optimal and efficient as possible.