As I understand it, a flash cell is 'flashed' (erased) by setting all bits to one. Afterwards, the actual value is then written by setting bits to zero.
Does that mean that, if I have a file and I update certain bits from one to zero, I can use the card for longer than if I write bits from zero to one? Or is there firmware getting in the way (e.g. wear leveling) that would nullify this? Does the filesystem choice influence this?
Does that mean that, if I have a file and I update certain bits from one to zero, I can use the card for longer than if I write bits from zero to one?
No, you can't use the card for longer than if you write bits from zero to one.
Wear levelling is handled by the file system you choose to write in the SD card. For example, Jffs2 (most commonly used flash filesystem) will take care of wear levelling in the SD card.
At SD card side the microcontroller implements a FTL (Flash Translation Layer) that takes disk-like block accesses and translates it into meaningful NAND operations, as well as performing wear-levelling and block sparing.