> For instance suggesting the change, being clear that you are willing to author it and discussing with those involved (before you start and as you go) how to do it in a way they would find acceptable?
That works really well if the person is viewed as a core member of the developer community, because the other developers will take the proposal seriously and engage with it.
It often doesn't work well for someone who isn't already in the inner core. "Radical" proposals just won't command the focused attention of the developer community. On one hand, the person making the proposal might be a crackpot, and so it would be a waste of time to discuss it; on the other hand, the person might actually be quite talented and motivated, but no one in the community yet realizes that and so they don't put the time into it that (with hindsight) they should.
Personally, I don't think there is a solution to this problem; there isn't enough time for developers to treat every thing that comes up purely on its merits (trust is an important timesaver), nor is there always enough time for any would-be contributer to go through a slow process of building trust (and some contributers, like Mark himself, may contribute in ways that don't quickly garner respect from C-coders).
So in my view the process will always be a bit messy. Just like evolution. Perhaps the biggest improvement would be an increased tolerance/politeness/respect for that messiness on the part of the wider community.