The rx guidelines say to avoid side effects when possible, and put them in do() (doAction in js) clauses if they are unavoidable.
However, a very common side effect in a UI is to create some resource (say a <div>) that is referenced down-stream (by children widgets). You have to capture the handles for these resources so they can be passed on. E.g. if you have an array of data, each requiring a div, you would create a div for each and pass the handles for these divs to the children.
However doAction() discards the return value of the side effect, so you can't capture the handles of the objects that are created. You have to do the side effect in a select().
Am I looking at this all wrong? Resources that are created are state, and are side effecting. You want the state in the stream, but you can't put it in the stream without putting side effects in select(), which is contraindicated.