[Galaxy S II Android Development] Lanchon:
between the CPU and the flash itself, there is another CPU running software loosely called FTL, flash translation layer. the FTL "emulates" a hard drive over flash, a medium that behaves completely different.

the FTL makes sure that, even if you write a particular (logical) sector of a disk, the physical write block used to store the data will rotate around to balance the write load, hopefully around all of the flash medium. this is called wear leveling, and is done because flash only withstands a finite number of erase/write cycles. for old-style MLC arrays, the endurance is around 2000 to 3000 erase/write cycles.

the FTL maintains a mapping from logical sectors to physical flash, and bugs in this software were what caused so much grief in the brickbug days. another point to note is that erasing data from an SSD only makes it appear to be gone by unmapping it from the FTL, but the data is typically still there if you have the means to access it. most times, it even keeps history and multiple versions of the data you want to delete, like a version control system :).

SSDs have a SECURE ERASE command that guarantees that all data ever written to a sector will be actually really wiped. they also have a simple ERASE comman that only unmaps it. many people complain that TWRP 3 takes a lot to wipe partitions and downgrade to version 2. v3 uses secure erase so you can use it to sell your phone, for instance. v2 uses simple erase, so it's fast and cheap (and insecure). the reality is the TWRP should man up and offer both options, because these commands serve different purposes and only the user knows what he needs. btw, brickbug et al were all problems of SECURE ERASE. ERASE always worked well, and i was able to predict it should without ever testing it (read the main (not i9100-specific) TRIM thread for details).

back on track: because of the FTL (and assuming the FTL is well implemented), write patterns are unimportant to longevity; only THE TOTAL VOLUME of data written is. also, because of physical limitations, flash erase blocks are much larger than write blocks. this means that sometimes, some useful data has to copied around to coalesce a full free erase block so that it can be recycled. this means that actual data written to a flash is more than what the CPU asks for. this is called write amplification and at any given time is characterized by a factor.

this factor should ideally be 1 but it is actually always larger. an untrimmed SSD gets a high WA factor in the long run. this is what makes it slow (at writing); trim is not some magic turbo dust. a high WA also burns away battery AND the life of the SSD! this is why i suffer when i see TRIM not going official on CM.

so two things matter: the write volume and the WA factor. if you dont trim, your WA factor can be 10 or more, so you are burning away the life of your phone and doing it FAST! write 200 MB and it counts like writing 2 or 4 GB! on a trimmed device, this doesn't happen.

so all this was to say:

1) it doesnt matter if you flash nightlies or download movies, all writes are created equal.

2) other factors, like write amplification, can be much more important than flashing roms at determining the life of your device.

but i have to say that nobody in their right mind should flash every day, its a waste of time! flash every month. ok, well, you are obsessive, then flash every week, its ok.

but whatever you do, dont forget to TRIM!