Is the whole program uploaded even if only one byte changed?

  1. Small changes in the source code cause bigger changes in the executable. Think about it: if you insert an instruction without changing anything else, everything after it is moved later in memory.

  2. The flash memory is organized into pages anyway (see table 27-11 on page 299 of the '328 data sheet) which means you're writing large sectors for a 1-byte change.

  3. To solve what real-world problem?

-br