Low quality doesn't automatically follow from cutthroat competition, at least not nearly as automatically as it follows from a
lack of competition. "Too much" competition might result in shipping too quickly to capture market share, but how bad the product that is shipped can be and still make profit is limited by what people will buy - they might as well decide to wait for a competitor's product instead, and typically the wait isn't very long. "Too little" competition, on the other hand, means you don't have a choice; it certainly gives vendors more time to perfect the product, and more money since they can ship later and charge more - but it also removes much of the incentive to improve the product since now it doesn't have to be better than a competitor's, it must only be better than nothing, which is not a very high bar.
Now it'd be nice if we could have an amount of competition that is "just right" - just enough to improve the product, not enough to ship half-baked stuff while desperately trying to conceal its problems. Unfortunately, I have no idea how to get there, and since all arrangements that I know of overshoot in one direction or the other, we have to pick one of the extremes, and I think "too much" is way better for the consumer than "too little."
Would society be better off if programmers managed to restrict entry into the profession as did lawyers and doctors? On general grounds, I rather doubt it as described above, but those programmers who're already in the profession would most certainly benefit from it!