В настоящее время при изменении границ карты (масштабирование или перетаскивание) обработчик складывает в массив полученные из скрипта точки, очищает ранее созданный кластер, складывает в него точки из нового массива, удаляет старый кластер с карты и добавляет новый.
Насколько я понимаю, этот подход неправильный, при движении карты происходит заметный переброс картинок с точками: сначала все пропало, потом отобразилось на новом месте. Если же не удалять все из кластера, при перемещении точки начинают дублироваться. Видимо, по каждой точке нужно прописать уникальный ID, но куда его всунуть, ума не приложу.
ymaps.geoXml.load("(адрес YMapsML)?"+boundsparams.join('&')).then(function (res) {
var arr = [];
res.geoObjects.each(function (obj) {
arr.push(obj);
});
cluster.removeAll();
cluster.add(arr);
map.geoObjects.remove(cluster);
map.geoObjects.add(cluster);
});