Then combineWith method is used to create a new Property from existing Observables (Properties and EventStreams). All Observables are lazy, i.e. do not register to underlying sources unless they have at least one Subscriber.
You should not confuse composition of Observables (with combine, zip, when, update etc) to assigning side-effects, i.e. registering Subscribers. If you want your "consume" function to be called on values in an Observable, you need to register it as a Subscriber.
Still, there's the issue that Bacon events only carry one value, so you cannot use N-ary functions with onValue. You can, though, make your Observable contain arrays as values and the use the "onValues" method that splits the value array as arguments to an N-ary function.
So, one way to do this is
// Property that emits values as arrays of [foo, bar, baz]
var combined = Bacon.combineAsArray(foo, bar, baz)
// Assign side effect. Split value arrays to 3-ary function.
combined.onValues(consume)
Because I found it to be quite a common case that you want to combine N Observables and apply an N-ary function on values, there's a shorthand method "Bacon.onValues" for this. So, the simplest answer would be just
Bacon.onValues(foo, bar, baz, consume)