> Do get the pgm->paged_write and pgm->paged_load functions
> get called for every page?
As you've already guessed, this recently changed.
The reason for this is that AVRDUDE now properly keeps track of which
data actually came from an input file. With respect to the page
programming algorithm, this means the upper layer first checks whether
the page in question actually contains data that came from an input
file, and only calls the backend for "interesting" data. Maintaining
the previous scheme would have duplicated the check for interesting
data in each backend driver, as opposed to implement that check only
once in the next higher layer.
> What is the reason to pass page_size as own parameter? How it is
> different from AVRMEM->page_size?
I can't tell you for sure. There's a lot of historical ballast around
here, in particular in the EEPROM area. Sometimes, EEPROM is handled
as being paged, sometimes it isn't even though that particular
device's EEPROM could be treated as paged.