Couple of quickies:
1) Can't set variables. You can set constants, but not change them.
2) Everything is recursive. You have to do really convoluted things to increment a variable, for example.
3) Everything must be valid XML. What this means in practice is that you can't string together links (a href="[link|http://some/url/[some|http://some/url/[some] inserted data]") without doing obtuse verbose cartwheels.
4) Verbose, verbose, verbose. XSL looks to be over twice as big as a corresponding template-style solution.
5) I have yet to figure out how to URL-quote stuff in XSL.
6) Sloooooow. XSL was twice as slow as a corresponding template-style solution (Velocity) in my testing.
Enough to get you started? :-)
Regards,
-scott anderson