Having said that, the reason why it is controversial is a weakness of Ethereum, this idea of autonomy that they sold is biting them in the ass.
Very well put - and great summary overall. Exactly what I was thinking about "biting them in the ass". (Well, "me" in the ass as well cos I have a few Ether floating around LoL, though I didn't invest in the DAO cos something like this was about as predictable as a storm in winter).
I saw it the other way from you though - I thought the only right thing to do was to not fork since the principles of isolating the rest of the network from the logic of any particular DAP were paramount and by forking you would be breaking something that has actually worked, since the failure resides wholly within the logic of the DAO code (which I think is written in Solidity). Thats where the risk should stay as well (and will stay unless they fork the entire Ethereum blockchain).
However, you're taking more humanitarian view which may be a more grown up approach right enough. i.e. "just give the people their money since the whole thing's f*cked anyway and it'll minimise the misery".
The problem with that is that if you break those underlying principles of a scripting platform blockchain (isolation of logic and risk) their "money" might not be worth anything anyway.
Massive catch 22.
The beauty of having different opinions on this is that there is clearly not a right answer, but if there was an opt-in pre-established mechanism on the contract that said:
"In case of a software issue on the contract, theft or a black swan event a quorum of nodes from the network would be randomly selected to arbitrate and decide on a course of action. If the decision of said quorum is not satisfactory then a full quorum could be requested and all nodes of the network could vote on the situation."
Requesting a decision from the arbitration system would have a cost of X to avoid spamming, requesting a full quorum arbitration would have a cost of X + Y.
If something like that was established then you could have a full quorum vote in this case, as established in the contract ahead of time and you would not be breaking protocol. People would have different opinions but the network could make a decision faster and move on.
Right now all we have is an ethical dilemma with no conflict resolution mechanism and the pretense that the code should solve this:
"In 1842, a ship struck an iceberg and more than 30 survivors were crowded into a lifeboat intended to hold 7. As a storm threatened, it became obvious that the lifeboat would have to be lightened if anyone were to survive. The captain reasoned that the right thing to do in this situation was to force some individuals to go over the side and drown. Such an action, he reasoned, was not unjust to those thrown overboard, for they would have drowned anyway. If he did nothing, however, he would be responsible for the deaths of those whom he could have saved. Some people opposed the captain's decision. They claimed that if nothing were done and everyone died as a result, no one would be responsible for these deaths. On the other hand, if the captain attempted to save some, he could do so only by killing others and their deaths would be his responsibility; this would be worse than doing nothing and letting all die. The captain rejected this reasoning. Since the only possibility for rescue required great efforts of rowing, the captain decided that the weakest would have to be sacrificed. In this situation it would be absurd, he thought, to decide by drawing lots who should be thrown overboard. As it turned out, after days of hard rowing, the survivors were rescued and the captain was tried for his action. If you had been on the jury, how would you have decided?"If we compare this to a decentralized network, everyone all the passengers should be the captain, this way a decision can be made and there is no one to judge afterwards or at least all the stakeholders are responsible for their faith. In the case of Ethereum no one established an arbitration mechanism and that just complicates things. IMHO.
Edit: Just to clarify one thing, I don't think they should be forking every time a contract breaks. Maybe they should not even fork this time as nothing was established ahead of time, but they should certainly embed some conflict resolution method into the protocol for the future and it can't be if a contract breaks to no fault of the stakeholders then everyone on the contract gets inevitably fucked. Who would want to use a contracting system like that? Things don't always go perfect you need to plan for when they go wrong.