I have been noticing that all of my beans used in the page are unnecessarily getting instantiated on updating any small portion of the page. Ok, they are request scoped so will be instantiated on every request but it should be done only when those beans are needed by that part of the page which is being updated. Isn't it ?
Why this bad design in JSF?
Update:
I found the real culprit that was causing this behavior, I had f:event type="preRenderView"
at certain places in my webpage. That actually caused those beans to be re-instantiated in order to invoke the listener. The fix was to use f:event type="preRenderComponent"
instead. This reduced most of the unnecessary bean instantiations at each request but still I see a few unnecessary bean instantiations.