The ability to do client side functionality does not go away with JSF, you still have the ability to use front end technologies such as dom and ECMAScript.
JSF Provides a "reusable" container based system to manage client side events such as form handling, text input handling etc.. (i.e write once re-use a million times)
It is completely up to the developer(s) to implemament efficiancy.
(JSF accounts that differnt stages of JSF development will be handeled by different members of the dev team. So for example the logic will be handled by the core developers and the GUI interface will be implemented by the front end developers to create a JSF GUI functionality.