Well, first off, get rid of the JSTL. JSTL and
JSF don't go together well, and you don't need JSTL for JSF anyway. I also discourage using "binding" on controls unless you actually intend on dynamically rearranging the UI. Value binding is simpler, cleaner and doesn't require you to burden your backing bean with arcane JSF-specific code.
Secondly, there's absolutely no problem with using a symbolic value in EL expressions. I have lots of cases where I do a <ui:include> that passes the name of a component to the included xhtml to be dynamically substituted using the <ui:param> element. The only limitation is that while most JSF attributes may be EL expressions, some have to be fixed text, so it's always good to check the documentation on the tag in question. Things like value bindings, however, usually can be EL, so that's not much of a problem.
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.