Not a proper answer, but to long for just comments:
Spinning rust (aka classical HDD)s can be written many times. Flash cells are more fragile and will fails with far fewer writes.
If you combine a filesystem which is not aware of that (e.g. FAT which keeps its directory listing in one place and updates that quite often) with raw access to flash based storage then one part of your flash is likely to die before the device is obsolete. Obviously, we want to avoid this.
Note that his is true for internal flash, as well as flash on USB pen drives, SSDs, SD card etc etc.
There are two ways to work around this:
- Make sure that the device is aware of its strage method and have the device work around this. (The controllers on an SSD are an extreme example of this).
- Or create a filesystem which is aware of this and which tries to avoid this particlular weakness of flash cells.
JFFS is such a filesystem. One of the things it does is spread out writes over the flash cells (wear leveling). If you arase a file and recreate that file then it is very likely recreated on different flash cells. fort flash, this is a good thing.
For routers whose internal storage is flash you do want to use JFFS or a similar aware filesystem for their internal storage.
You do not want to use it on other devices, such as a classical HDD.
If you have an old dumb USB pendrive, then you do want to use it (read: I disagree with the 'do not use it on ANY USB device). If you have a modern USB pen drive then might already have an internal solution to mitigate wear leveling and a using JFFS is likely to conflict with that.