If you use JSTL,
JSF won't be properly aware of what you're doing to the View structure.
Also, there's a reason why the setter gets called multiple times, so there's a strong possibility that you're short-circuiting parts of the JSF lifecycle on that control.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.