There seem to be a lot of blog entries at the moment arguing over the relative merits of XML, JSON, YAML, S-Expressions, etc. as a data interchange format, and Web Services, WS-* Services and REST-style as the application protocol implementation. But while various articles make interesting academic points...
In fact I can't think of a single place where it is a good idea to use xsl:for-each, but in software there are very few absolutes and so its possible there might be one or two. By replacing it with xsl:apply-templates you can make your XSLT stylesheet flatter in structure, easier to read, more flexible...
An interesting problem landed on my lap a couple of days ago: We have a UI which uses XML for layout including the sizes of the on-screen components, and need to be able to scale it up or down for zooming or different screen resolutions. I figured this could be done with a fairly simple XSLT stylesheet...