Is there any cons with programming a atmega2560 every time the device starts?
Other than the time, the main drawback is that the program memory will eventually get worn out.  Flash memory has a limited number of lifetimes writes and erases.  Check the datasheet to see how many your device is specified for.

Some microcontrollers I've used have only been specified for 1000 program memory writes.  That's plenty for initial production and occasional field updates of the firmware.

However, that limit isn't hard to hit if one of these 1000 writes gets used up every time the device is turned on.  If it happens once a day, then the program memory is only good for 2 years 9 months.  Twice a day results in 1 year 4&frac12; months.  Once every hour yields 42 days operational life.