The whole program is uploaded every time. The flash has 10x the wear endurance of the EEPROM that you quoted, so it is not a practical problem.
Features• High Performance, Low Power Atmel®AVR® 8-Bit Microcontroller Family• Advanced RISC Architecture- 131 Powerful Instructions - Most Single Clock Cycle Execution- 32 x 8 General Purpose Working Registers- Fully Static Operation- Up to 20 MIPS Throughput at 20MHz- On-chip 2-cycle Multiplier• High Endurance Non-volatile Memory Segments- 4/8/16/32KBytes of In-System Self-Programmable Flash program memory- 256/512/512/1KBytes EEPROM- 512/1K/1K/2KBytes Internal SRAM- Write/Erase Cycles: 10,000 Flash/100,000 EEPROM- Data retention: 20 years at 85?C/100 years at 25?C(1)- Optional Boot Code Section with Independent Lock BitsIn-System Programming by On-chip Boot ProgramTrue Read-While-Write Operation- Programming Lock for Software Security
Still never been a practical problem here and I have a very old '328.
I'm already at 2000+ uploads I think, and I haven't even done 10% of the code for my project, just testing things...
Is it theorically possible
and if yes, why it hasn't been made?
It would greatly increase the lifetime of that flash memory right?
Well, I have an Arduino since approx 7 months, uploading on average 10 times a day... (that's how it works when you want to explorate and learn) so that's how I calculated those 2000+. Maybe you don't realize, but it goes quick.