title: Rx.Observable not been working as expected with using Observable.empty
body: <p><strong>RxJS version:</strong> 5.5.6</p>
  
  <p><strong>Code to reproduce:</strong></p>
  
  <pre><code>var obs = Rx.Observable.interval(100)
                    .startWith(0)
                    .flatMap(() =&gt; {
                         return Rx.Observable.empty();
                    });
  
  var sub = obs.subscribe(
            (data) =&gt; {console.log(data, 1)},
            (err) =&gt; {console.log(err, 2)},
            () =&gt; {console.log(3)}
  );
  </code></pre>
  
  <p>The above code logs nothing</p>
  
  <p><strong>Expected behavior:</strong> next, complete callback should be triggered</p>
  
  <p><strong>Actual behavior:</strong> subscribe callbacks not been invoked</p>
  
  <p><strong>Additional information:</strong></p>
  
  <p>if we flatMap returns Rx.Observable.of({}), then callbacks get invoked.</p>
  
  <p>according to RxJS documentation
  Observable.never() Creates an Observable that emits no items to the Observer.</p>
  
  <p>Observable.empty() Creates an Observable that emits no items to the Observer and immediately emits a complete notification.</p>
  
  <pre><code>var obs = Rx.Observable.empty();
  
  var sub = obs.subscribe(
  (data) =&gt; {
      console.log(data, 1);
  },
  (err) =&gt; {
      console.log(err, 2);
  },
  () =&gt; {
      console.log(3);
  },
  );
  </code></pre>
  
  <p>//the above code logs 3</p>
  
  <p>If we use Observable.interval() then Observable.empty does not emit a complete notification</p>