NSOperationQueue предназначен для объединения и повторного использования потоков наиболее эффективным способом, и в этом случае, похоже, было решено, что повторное использование потоков не является лучшим способом.
Тестовый код имеет свои применения (и, возможно, вы, возможно, определили угловой случай, когда NSOperationQueue не делает наиболее эффективную вещь), но это не означает, что NSOperationQueue всегда ужасно неэффективен при работе с реальным кодом в реальном жизнь; на самом деле мой собственный опыт был наоборот.
Так что я бы сказал, используйте его в своем реальном коде, и если у вас есть проблемы с производительностью, углубляйтесь в то, что он делает с потоками за кулисами. В противном случае не беспокойтесь об этом.
Кроме того, если вам все еще любопытно, вы можете попробовать записать имена потоков в массив строк NSStrings, а затем распечатать все в конце тестового кода, вместо того, чтобы регистрировать по ходу дела - это значительно сократить объем работы, выполняемой каждой операцией NSInvocation.