@Oh Homer - Re: Meanwhile...
"So which is better: abuse that is subject to public accountability, or abuse that goes unchecked forever?"
Probably the former but it's a moot point because all too often ordinary users do not get the software that they actually want from either camp—from the users' perspective, software is almost always a compromised kludge which doesn't really work the way they want to. For them, the real issue is minimising the 'kludge' factor—thus users use whatever best fits even though they're not happy.
Long ago, I concluded the principle reason that users are unhappy with the software they use is that the majority of client-side software developers principally write for themselves rather than for users and it's so whether or not they are writing open or proprietary software (but the effect is much more pronounced with open software). (There's excellent long-established evidence for this which intrinsically arises from current software engineering methodology that I won't discuss here as we'll get sidetracked into debates that are not winnable by either side.)
Whenever I've put this proposition previously developers usually retort the only solution is for me to write my own software. True enough, but it is usually not feasible for one person to say develop tailor-made versions of Windows, MS Office, LibreOffice, Photoshop or Gimp—all of which have significant operational peculiarities that the developers have refused to alter but which many users would change in a flash if they had the means to do so.
From my experience, developers of open software are usually much more reluctant than commercial developers to cater for user's needs (probably because there's no pecuniary reward involved).
Let me give you some examples without being too ground down in specifics, I'll begin with OpenOffice/LibreOffice. You'd think that the developers of this product would go overboard to propagate it as widely as possible but their actions have never indicated that this is so.
Given that the majority of users around the world use MS Office, you'd think that OO/LibO developers would take very special care to make it as easy as is possible for MS Office users to switch over but this is certainly not the case, nor has it ever been so. I'll only give one example here but there are dozens more I could raise. Over its many years of development, OO/LibO developers have never even bothered to replicate the common MSO shortcuts into OO/LibO despite a clear demand for such compatibility. Why ever not? You'd think that even if they had an utter aversion to using any idea tainted by Microsoft that it wouldn't actually stop them from providing the MS shortcuts as an option/switch for the convenience of MSO users (nevertheless, it's a fact).
Similarly with Linux: you'd think one of the very highest priorities for Linux developers would be to make Linux as completely user friendly for Windows users as was humanly possible. For instance, to integrate Wine completely and seamlessly into Linux to ensure its compatibility with Win-32/64 APIs was almost total. However, this has been far from the case, in fact many Linux developers are actually quite hostile to such proposals (seemingly mainly from an ideological standpoint).
The consequence of developer hostility towards the actual needs of users is particularly obvious in the Linux case. The two prime examples are (a) The City of Munich potentially turning its back on Linux despite the City's considerable efforts to embrace free software, and (b) Google's development of Android—look at how that more 'human' form of Linux overtook the world when its traditional developers were completely bypassed.
On the evidence, it's just not possible to arrive at any other conclusion than the fact that most developers of (especially) open software develop primarily for themselves and that they consider it a major imposition to be forced to do otherwise. I have no obvious solution for this, for after all they're the ones pulling the strings, as they're providing their time for free.
As I see it, probably the only long term solution will be to change the programming paradigm, especially those aspects of it that relate to the way users actually interact with software. Perhaps we need new more flexible development tools that would automatically allow for users to say change certain software features—especially those that pertain to human interaction, GUI features, etc.—whether or not the programmer programs in such flexibility.