This is actually inaccurate now, as of rxjs 5.5 people should try to use “pipeable” (aka “lettable”) operators which is a functional programming approach. They are more tree-shakeable, and will ultimately reduce the overall output bundle size substantially. It also becomes much easier to create your own operators, as they are just higher-order functions.
I quite sure I understand the question.
If you’re trying to manage what side effects come from what observable, but you’re merging them all together, you would use a do operator at the end of each observable to be merged to handle each observables side effects.