I consider it mostly harmfull. Not by itself, but by how it is used.
XML was invented as a way to bring structure to the web while retaining the unstructuredness of HTML. Think of data combinded with some text, markup, and style, delivered to the browser, yet still perfectly machine readable. I have seen too little of that.
XML, however, is used for lots of stuff where it kind of works, but which it is not the ideal tool for. Think of SOAP: I can think of three human readable, textual representations that are easier to parse and easier to read than XML: YAML, Lisp's s-expressions, and JSON. Why anyone would build a RPC mechanism on top of XML is beyond me.
As for configuration files, I am undecided on that one. With a Unix background, I absolutely hate writing XML-based configuration files. On the other hand, it makes sense to use XML if there is a GUI-tool as well. But the same argument as in the last paragraph applies: Configuration needs structure more than free-form and there exist better approches to structured textual representations.
To recap: XML is about combining structure with free-form. It's cool if you need both. If you need structure only (and most current uses of XML fall into that catagory), you need to use XML-Schema to make the free-form aspect go away. Yet when you later write the free-form free XML, you are likely to commit syntax errors, because XML has so little, well, structure.
Then there is the political aspects: Because XML is the standard, it is often forced on you, even though you know it is not the optimal tool for the job. But it looks incredibly good on Powerpoint and therefore the suits love it. So it is likely to spread to ever more areas of IT.
So to answer your questions:
- Mostly harder
- Mostly less productive, because in is still alien to many host languages
- Depends
- Refer to the paragraphs above