If I can take a moment to defend the questioner, I think that's exactly what makes it the perfect question to ask here. If it was a yes / no, true / false question, you could look it up online or in reference documentation. The entire point of forums is to help fill in the gaps when those resources fail or your question (just like this) is subjective.
I think in most cases you're absolutely correct. Open Source software has its share of quirks and sometimes isn't as stable as I would like. However, in general the open source projects which grow large have done so because they're well built and "on target" with useful features. In contrast, Microsoft may be the most successful for-profit software company, but look what the last several versions of the .NET framework have brought us... several major advances have been web server controls which are supposed to replace XHTML and LINQ / EF which are supposed to eliminate the need to write SQL. REALLY? That's what the think the development community is looking for? Screw new features, just change the way you do things and call that progress? If the web server controls gave you more power and control than just manipulating XHTML with C#, I might be on board; but what a complicated mess that is.
I would just point out that this isn't what allspiritseve was asking. Purchased software can frequently be inferior to open source software, but virtually all packages, purchased AND open source are not aimed at developers. They're aimed at people who can't build their own websites... that's what makes them the major players because developers are such a small audience. We know what works well for developers. I've heard a number of guys in PHP rave over CodeIgniter. An XML specialist I know swears by oXygen. If someone took away my Notepad++, I might go into sales and marketing I'd be so depressed. But the big packages necessarily automate a lot of stuff and take control away from you, they do things for you, they "make your life easier". And if your part of the mass public then having the CMS do all those things for you is an acceptable loss of control, since you couldn't do it yourself. But for a developer, they're a pain in the backside.
I would take issue with this point. While there are things that CMS systems do well, this is certainly not one of them. Just because you can jury rig a customization, doesn't mean the system performs well. Developing CMS plug-ins takes much longer than producing equivalent functionality from scratch. The advantage of 3rd party software in general is that it eliminates construction and gives you functionality with only setup time instead of coding time. The price is that customization and maintenance are a @#^@#$%. And unfortunately this is the most expensive part of development though it's spread out over a much longer time. That's why typically CMS systems usually perform best for non-developers who can't produce funcationality themselves. For a developer, it increases the time and complexity of virtually every task you do because you have to work inside the sand box you're given. And while I haven't worked with Wordpress specifically, I think I just just cite...
to demonstrate that I'm not the only one who's found CMS systems ridiculous to deal with. Here's just one example that's not even a complicated coding / customization / plugin issue. If I want to change the font on an entire website that I've created, it takes me two minutes in a stylesheet: one minute to change, one minute to upload. The other day a client asked me to fix one particular webpage on a Joomla site so it would display one consistent font throughout. It took me an hour to get all the adjustments right, and there is still an inconsistency that causes FF to display one paragraph in bold. And I can't even tell where it is because the XHTML output is such a mess.
As a developer looking for 3rd party material, I want to build my code base not glop together a bunch of incompatible packages. So I gravitate to things which do that. jQuery is a code library, it adds to my code base. I can use it to execute a solution but it doesn't get in my way if I need to do something outside it's built-in capabilities. The .NET framework (as much as I bash it sometimes) let's you ignore all the garbage and use the good parts that work for you. As long as you work programmatically in your language of choice, there's not really any limit to what solutions you can create or how you can go about doing them. That's what makes a code library and some frameworks different from a CMS which takes control away from you and makes you do everything through an interface. For someone who doesn't know anything about web development, that may be really helpful, but by the time you learn CSS, it's pretty much just getting in your way.