In OpenMP any code inside a #pragma omp master directive is executed by a single thread (the master), without an implied barrier at end of the region. (See section
In addition to nesting limitations single construct can be implemented slower than master construct because it is more complicated and flexible. You may want to check your particular implementation, but in general master can be implemented faster, so multiple invocations of it may benefit comparing to single nowait construct.