I think we should hold the line suggested by Dave A. that foo || (foo = baz) is too opaque to novices. If we're worried about performance, I think we should go obvious:
if (!foo) {
  foo = baz;
}