Нормальна ли такая реализация функции?
Дичь конечно.
Не надо определять переменные с именами как у каких-то глобальных объектов, так что window - долой. Ну и в целом - как-то многословно, это могла бы быть и одна строка:const closeInfoWindows = (...windows) => windows.forEach(w => w && w.close());
Ничего плохого. Непонятно, зачем нужна проверка if window, какого-то окна может не быть?