title: BehaviorSubject used as PartialObserver breaks the subscription on BehaviorSubject
body: <p>I was looking through the interfaces of observables and saw you can pass anything that implements PartialObserver to the subscribe function. So I did that with BehaviorSubject.</p>
  
  <p>Like this (A)</p>
  
  <pre><code>source$
        .pipe(
          tap(() =&gt; console.log('X')),
        )
        .subscribe(this._titlesX$);
  </code></pre>
  
  <p>So I did, but found something very strange. If I pass the behavior subject to the subscribe function the values get emitted, but to see that, you have to subscribe before using the BehaviorSubject as PartialObserver. </p>
  
  <p>In the docs for BehaviorSubject you can find this:</p>
  
  <pre><code>A variant of Subject that requires an initial value and emits its current value whenever it is subscribed to.
  </code></pre>
  
  <p>So when using BehaviorSubject as partialObserver this behavior breaks.(No pun intended)</p>
  
  <p>But when I use this method:
  Like this (B)</p>
  
  <pre><code>source$
       .pipe(
          tap(() =&gt; console.log('X')),
        )
        .subscribe(res =&gt; this._titlesX$(res));
  </code></pre>
  
  <p>Everything works as expected. </p>
  
  <p>Why does method A not work? Is this a bug or am I just using it wrong?</p>
  
  <p>Here is a link to the stackblitz all setup. <a href="https://stackblitz.com/edit/angular-w4hgjw" rel="nofollow noreferrer">Link to stackblitz project</a></p>
  
  <p>titleX: represents method A
  titleY: represents method B</p>
  
  <p>Subscribing with an BehaviorSubject should be possible. And the time when you subscribed should not matter. Otherwise it shouldn't be allowed as a parameter for the subscribe method.</p>