Автор оригинала: Wicked
Проблема, как мне видится, в следующем:
Когда ты делаешь +=, то "дописывание" происходит только на уровне работы со строкой.
На самом деле происходит вот что:
1) все дочерние элементы элемента files - убиваются.
2) парсится его новое значение innerHtml.
3) из распарсенного innerHtml создаются новые элементы (читай: поля ввода).
Т.е., короче говоря, при каждом добавлении нового поля ввода, все остальные поля ввода тоже пересоздаются.