Well, the problem is: flash cards are ageing !
This is an inherent problem with Flash. You can look all this up on wikipedia, but in short: There are more or less two types of flash: NOR and NAND. NOR has a possible 100.000 - 1.000.000 write cycles before it gives up, NAND had historically less possible write cycles, but is catching up lately. All fast CF cards are based on NAND Flash (NOR is sloow, but has other advantages, e.g. processors can boot from it directly). The CF Card controller is tracking how often it wrote to a flash sector and tries to level the wear of the sectors. This is called wear levelling. The DOS file system doesn't notice which physical sector it wrote to, the CF card controller shifts the same logical sector to a new physical sector the next time the FS writes to it. If the CF card Flash reaches its life time limit, the card will flag more and more sectors defective and has more work to do to find the good ones, also fragmentation will get more of a problem.
Fragmentation in combination with a full Flash is always very bad. If a write request cannot be fulfilled within one sector, but has to be shared among several flash sectors that already contain other data, the following happens: the first sector containing free space is read into the internal CF card buffer, the part that was free is then filled with part of the data which has to be written to the card and then the CF card needs a free sector to write the sector as a whole to a new place on the card. This goes on with the next sectors until all data has been written.
This process is necessary because Flash sectors cannot be written byte wise like RAM but only sector wise. To be precise: the sector cannot simply be written, it has to be erased first and is then "programmed". The wear levelling causes the CF controller to use a new sector which gets slow if the file system is full and fragmented as the CF card controller has to shuffle around the data to make free space ...
BTW look, if the capacity of your card is starting to decrease. That's a good hint for end of lifetime ...
The lifetime of CF cards is quite dependend on the type and brand. E.g. STEC industrial grade CF cards are specified up to ~2.000.000 write cycles or the equal of 10 -15 years of use. Current industrial grade cards even contain an internal condensator to buffer the last write operation to the flash, in case the CF card is removed from its slot before completion. The internal controller logic is the key for reliability of a CF card. I guess the newer ones are much better than the ones you could get 4 years ago.
Regards,
Daniel.