This option fills gaps between sections with a known value. 0xFF is selected because it minimizes the flash wear.
Even though they would have to pick a value to use, and an erased value is a logical choice, I'm not sure flash wear would really enter the picture. The flash that gets erased/written every time at the very least would be the vector table, and it would not be a big win to have preserved some other flash locations while the vector table starts to fail. I would think it would be better to have every flash byte 'exercised' equally so they start to fail at the same time frame, giving you the max sample size of bytes as failure detectors. Probably makes little difference in most cases as one never approaches the flash writing limits by normal programming. If flash is used for runtime storage, then its on the app code to sort this out.
It seems to me this option would simply be for ranges of unused flash in pages otherwise left untouched by the programming process. In other words, if a flash page has code in it, it will be erased and any unused flash in that page will already be 0xFF.
For this avr, there is a choice the programming software can make- either program by pages or do a chip erase first then program the flash. It could simply be the ide has an option to do a chip erase disguised as 'fill unused flash with 0xFF', as a chip erase would be the easy way to do this.
One reason one may want to do this- you simply do not want remnants of previous code remaining in the mcu. If your currently loaded (flawed) code happens to get past the end of your app code for some reason, you end up in harmless instructions and will be able to detect the wrap-around (end up back at reset vector, startup code checks for any reset flag, if no flag you have a problem and are going to want to do a software reset). Also having a 'clean' mcu will mean anytime in the future you need/want to read the flash to see whats inside, you will not have to decipher pieces of code that are no longer part of the current app.
A reason to 'not' do a chip erase (fill with 0xFF), for this avr, would be if you have the avr setup to use the Application Data section. If you want to preserve that data between programming, you cannot do a chio erase as it would also erase that data. The programming software then most likely would do page programming, and the Application Data section would be untouched as its location will not have any code to program.
So, for this avr, I would do a chio erase (fill with 0xFF) unless I was making use of an Application Data section and I wanted that data preserved between programming. There could be other possible scenarios, but you will know when you are there.