XSLT was designed primarily for use with XSL-FO.
The result of an XSLT transform is an XML information set that may or may not be serialized as XML syntax.
The result information set can be delivered to XSL-FO formatter without serialization.
A number of features of XSLT assist the writing of XSL-FO stylesheets.
The design of XSL-FO is made simpler by the use of XSLT functionality.
XSLT is a normative part of XSL-FO.
Section 2.1 of XSL-FO states the following:
The provisions in "XSL Transformations" form an integral part of this recommendation and are considered normative.
Certain aspects of XSL-FO are defined by XSLT.
References are made in XSL-FO to the definitions in XSLT.
Design decisions in XSL-FO pattern themselves after XSLT definitions.
There is no technical reason that XSLT must be used exclusively to create XSL-FO.
The formatter will accept an instance of XSL-FO regardless of how that instance was generated.