Да просто вообще ничего не стирает. Не выполняет chip erase команду. Просто пишет поверх что дали. Если прошивка меньше, чем размер_флэша-размер_бута, то его не затронет. "Мусор", оставшийся от прошлой прошивки тоже не помешает по-идее, т.к. до него не должен дойти код никогда, если в нём нет ошибок.А оно точно "не затирает"? Или все же затирает, но потом прошивает заново? Ну и учитывая, что размер бутлоадера может меняться от 256 до 2 кБ, как оно определяет адрес начала? Фьюзы чтоль анализирует? Ох не верится...
Ключик -D, отключает chip erase при записи в область flash.


