In a perfect world with infinite resources the best answer would be to solve every verified "bug". I would like to see that occur but I certainly do not want to pay the subscription fee that would be required. I also do not want parts of the program disabled unless it is shown to be a critical problem that no solution can be achieved.
Some people "push" the software past normal expectations and find problems that effect their ability to design. I think the current 2-pronged approach (how many users does a "bug" effect while also rating the severity) is a pretty decent approach even though there have been "bugs" I reported that were closed without being solved.
Getting the existing system to work requires our efforts to report a "bug". The method to improve our chances of getting a problem solved is to make others aware of it and get them to "vote" to move it up the ladder of importance. Although not a guarantee of success, it can certainly help.
You do make some very good point. I do have to wonder though is SW is spreading it's resources too thin to offer things that don't work as well as they should, just so they can sell the product? It's a hard call if it would better to offer a slightly simpler software that works great or a software that has slightly more features but is buggy. Personally I love SW when it works well for me but absolutely hate it when it bugs out on me, it's a very extreme relationship. I really think it is a very call until you consider it from a profit stand point.
More options will sell better and (most of the time) people wont know about the bugs that effect them until after they bought it and have made a commitment to the transition. At that point it is often easier and cheaper to deal with work arounds than to ditch it and try another software. That tips a questionable call just enough to give us what we have. It may not be ideal but it seams like a reasonable approach. Except of course when the bugs effect me and then...ARGGGG get off your butts and fix it SW!