From the
java EE 6 tutorial
The term Facelets is used to refer to the JavaServerTM Faces View Definition Framework, which is a page declaration language that was developed for use with JavaServer Faces technology. As of JavaServer Faces 2.0, Facelets is a part of JavaServer Faces specification and also the preferred presentation technology for building JavaServer Faces based applications.
Not sure if we really need JSTL with JSF. JSTL, as far as I know, is a standards tage library supporting tasks like iteration, formatting and internationalization. JSF, when used with extensions like PrimeFaces or RichFaces, provides these features through the components themselves.
MyFaces is a JSF implementation from Apache.