title: distinctUntilChanged not working for same value as previous
body: <p>Something strange happening here. I have a form with 3 fields: a <code>string</code> and two <code>objects</code>.
  The both objects get values from <code>mat-select</code>. Here, if I select again the current value, will not be emitted any event. For the string, is another situation (named <code>country</code>)</p>
  <p>The country field is a value get from one of three buttons as:</p>
  <p>ts:</p>
  <pre><code>countries = ['en', 'de', 'es'];
  
  
  countryChanged(country: string): void {
     this.form.patchValue({
       country
     });
  }
  </code></pre>
  <p>html:</p>
  <pre><code>&lt;button *ngFor=&quot;let country of countries&quot; (click)=&quot;countryChanged(country)&quot;&gt;
     {{country}}
  &lt;/button&gt;
  </code></pre>
  <p>now, the problem is that, even if I press the same button, it will trigger again the form <code>valueChanges</code>, even the value is the same as the previous.</p>
  <pre><code>this.form.valueChanges.pipe(
    distinctUntilChanged() // ?????
  ).subscribe(data =&gt; {
    // do stuff
  });
  </code></pre>
  <p>Why <code>distinctUntilChanged()</code> don't do its work here?</p>
  <p>I know I can avoid it simple, with an if condition inside <code>countryChanged()</code> method, but I want to understand why <code>distinctUntilChanged()</code> don't do its job.</p>
  <pre><code>countryChanged(country: string): void {
      if (country === this.form.get('country').value) {
         return;
      }
  
      this.form.patchValue({
         country
      });
  }
  </code></pre>