title: Why does ngModel cause infinite loops when passing new Objects, when Input doesn't?
body: <p>This causes an infinite loop: (<a href="https://plnkr.co/edit/4GAM251GYrjXpU0NlWU9" rel="nofollow noreferrer">plunker</a> - the entire page will freeze if you run this)</p>
  
  <pre><code>&lt;child [ngModel]="foo()" ngDefaultControl&gt;&lt;/child&gt;
  ...
  foo() {return new Object();}
  ...
  //child implements ControlValueAccessor
  </code></pre>
  
  <p>and this doesn't: (<a href="https://plnkr.co/edit/HuZwNN4GkBGcqUsm3uvm" rel="nofollow noreferrer">plunker</a>)</p>
  
  <pre><code>&lt;child [anythingElse]="foo()" ngDefaultControl&gt;&lt;/child&gt;
  ...
  foo() {return new Object();}
  ...
  @Input() anythingElse; //on child
  </code></pre>
  
  <p>why does this happen? is this a bug?</p>