yes, I also prefer to have the barriers outside the node specific blocks because then you read it in time order (and don't forget to add a barrier on some node).
one case when that is not possible is when sharing state between node blocks

    runOn(n1) {
      val a = ...
    }
    barrier
    runOn(n1) {
      a isNeededHere
    }