Дорого, это каждый раз рекурсивный обход групп, memberof же вычисляемый. Лучше запросить список групп и потом проверять вхождение.
Ну в два цикла лучше это да, потом по кускам собирать объект и в массив. Про вычисляемый сходу не вспомнил. Если речь про 100 юзеров, то недорого будет, а вот если 100к юзеров и 1к групп, то да