В каком контексте будет работать ваш код?
Я имею в виду, похоже, что вы хотите написать некоторый код, который будет запускаться как часть процесса развертывания, а это означает, что он будет запускаться только изредка.
Если это так, имеет ли значение, оптимизирован ли ваш код для повышения производительности? На мой взгляд, было бы лучше придерживаться простого решения по открытию каждого SPWeb и не слишком беспокоиться о производительности.
Если вам нужно перебрать сотни или тысячи сайтов, это займет некоторое время. То, занимает ли ваш код десять минут или пятнадцать, не должно иметь большого значения.
Производительность была бы более серьезной проблемой, если бы она запускалась много раз и часто.