下記ページに以下の記載がありますが、.prototype = {}は、一般的にはどういう扱いをされているのでしょうか?
・仕様上は許可されているが使用すべきではない
・絶対に使用すべきではない
・規約による
・別に使用しても構わない

ClassName.prototype = {} って、やっていいの?

http://qiita.com/LightSpeedC/items/d307d809ecf2710bd957


下記ページの記載は、単にinstanceofの挙動を確認するためだけのもの?

C.prototype = {};

https://developer.mozilla.org/ja/docs/JavaScript/Reference/Operators/instanceof


疑問
・最初に掲げたページで言っていることは分かるのですが、それならそもそもなぜこの書き方が許容されているのでしょうか?
・規約でObject.create()のみを使用するよう制限すべき?
・Object.create()がないES3の頃はどうしていたのでしょうか?
・.prototype = {}を使用可とすると、instanceofについて意図しない結果を返す可能性もあると思うのですが…
・.prototype = {}と、instanceofは併用不可という考え方で合っているでしょうか?