Выяснил, в чём дело.

Подключаем несколько слоёв в карту. Потом, допустим, расшифровываем печенюшку со слоями (пока контрол ArgParser не научился сам их читать)

for (var i = map.layers.length - 1; i >= 0; i -= 1) {
    var layer = map.layers[ i]
    if (layer.layerCode) {
        layer.setVisibility(layerConfig.indexOf(layer.layerCode) != -1)
    }
    else {
        layer.setVisibility(false);
    }
}

(базовые слои оставим за скобками пока). Так вот, в map.layers последний элемент - это невидимый служебный слой, который если отключить, всё поедет криво. И лишние тайлы грузятся, и при запуске ничего не показывается. Убрал else, все проблемы исчезли.