ES3 8.6.2.3 step 5
https://mail.mozilla.org/pipermail/es-discuss/2011-February/012839.html
[[Prototype]] の ReadOnly*1が子孫に伝播する話。
Object.prototype = 0 Object.prototype + '' // [object Object]
Object.prototype
は書き込み禁止なので代入が無視される*2。
o = {__proto__: Object} o.prototype = 1 o.prototype + '' // [object Object]
[[Prototype]] の同名プロパティが書き込み禁止なので代入不可。
o = {__proto__: Object, prototype: 2} o.prototype = 3 o.prototype // 3
初期化時に隠してしまうと代入可。
Fx3.6.13 で確認。Dmitry の指摘通り、非直感的な仕様だと思う。