If I understood correctly, you want to combine each new value in mutationStream with the current value of state, but you don't want to trigger updates when state changes (that causes a "feedback" effect). The sampledBy combinator allows use to do just this:
var stateUpdates = state.sampledBy(mutationStream, function(currentState, newEvent) {
return currentState.updatedWith(newEvent)
}).onValue(dataUpdateBus.push)
The key difference to your code is that updates are only generated on new events in the mutationStream.