Re: XSLT in general: The simplest answer is that XSLT is a language with a limited purpose (manipulating XML data) but very high abstraction level. This means that many constructs that are quite laconic in XSLT would be wordy and cumbersome in other languages. In fact, once you learn XSLT, any kind of XML processing in other languages will look wordy and cumbersome to you
Re: XSLT 1.0 vs 2.0: The 1.0 was pretty much a proof-of-concept language. It was conceptually sound but lacked many conveniences that are hard to get by without in the real world. The 2.0 not only delivers a lot of such conveniences, but also further generalizes the data structures (everything is sequences now) and adds better integration with other XML standards. Overall, it's an exciting new level of XSLT that I highly recommend.