I'd image that 90% of the development effort is fixing or working around the absolute abomination of a codebase that is Windows. If it weren't for all the legacy garbage that they had to support, Windows would be a much better platform.
It's probably hard to believe, but a lot of their more recent software is of a really high quality.
Seems to me from the insider emails, etc. that 90% of their efforts seem to be on features no one has ever asked for or needs and end up abandoned before they are fully implemented.
No doubt there are a lot of legacy issues and code no one wants to touch/people who originally worked on it long gone along with the documentation, etc. but there are so many areas they never even get the basics right, etc., for instance updates for issues which should never have existed - often bringing more problems with them, I don't believe that is the major stumbling block.
But it isn't always about the quality of the product itself in terms of programming competency, etc. but that obviously no one has ever considered it, of if they do don't give a ****, from the perspective of the end user.