I think where open source has failed thus far is that it hasn't yet led to end users having the ability to modify their software. To a certain extent, it has led to users having the right and permission to modify their software, but not to the culture that this is something to do, nor much in the way of end-user-level information as to how to go about doing it.
I've joked that Emacs isn't *really* GPL-compatible, because the GPL requires that "the preferred form for making changes" be available, and a lot of it is only available as elisp. But I think there's a real problem when even technically-competent users of GNOME have complaints about the UI in a new version and don't just fix them.
I think that, in order for open source to truly succeed, end users will have to be brought into a culture where the normal thing to do when some application behavior annoys you is to change it. That's the only way to actually achieve the idealistic goals, and the only way to lock in a victory.