Remeber that using a select attribute on the xsl:apply-templates element (eg <xsl:apply-templates select="..."/>) is in fact the pull style of processing - the only way to instigate push processing is with a no-select apply-templates (eg <xsl:apply-templates/>). The select attribute is driving the context node, not the document order of the source.
Therefore, your example uses more pull processing than push.