First off, there's a myth about the "pluggable, skinnable" UI ... that the difference between a desktop/browser UI, a rich UI and a cell-phone UI is just a matter of paring down the interface.
I've found this to be anything but the case; these different interfaces are funamentally different applications ... new use cases, new storyboards, different functionality. Trying to leverage reuse in the UI is a terrible idea; the end result (whether using JSF, XML/XSLT or something else) is to increase unwanted interdependencies between these fundamentally different applications ... it's programming inside a big case statement and will simply not scale.
Reuse is best reserved for the application layer (EJBs and beyond).
"Why is choosing the best of all and combining into a single approach bad if it simplifies development and gets product to market faster?"
Where did this statement come from? Under what circumstances is JSF an integrating approach? JSF is anything but ... it locks you into a very specific event cycle and requires extensive tools support. Additionally, each vendor is likely to provide vendor-specific JSF components; it's the only lockin they have left.
More importantly, there's no evidence that JSF is capable of being the kind of integration technology that would allow developers to choose the best. It is something of a least-common denominator choice, partly because it is bound to JSPs, a limited and problematic technology.
You are right that no Technology will address every need but I feel that Tapestry is better positioned than JSF to address real developer's issues. Tapestry works very well as an integration platform for varied technologies because so much of it is based on JavaBeans properties (and OGNL, a vastly superior expression language).