I have used the CVAVR compiler, it works nice and allows to easily write to the eeprom just like a variable. Unfortunately it doesn't have a flash variable or easy way to write to the flash memory.
I'm looking for the Easiest way mainly to write to the flash, ideally like a variable (which can even be an array e.g. flashbuf[pagesize]) without having to start reviewing and understanding Atmel "Self Programming" A/N (Application Note).
By the way, if I understand the WinAVR is the best among the low cost or free tools. Does it allow it?