I wanted to follow up on this with further testing results, and also report some bad news about the SD Formatter utility offered by the SD Association.
With some time on my hands, I finally got around to installing the SDFat.h library in my Arduino IDE, and testing the SdFormatter.ino example that comes with that library. I used a Nano clone and an 8GB Transcend microSD card. Looking at the sketch code, it's clear that the card is erased using the CMD38 command as part of the formatting. An 8GB card takes about 10 seconds to erase. Moreover, the sketch fetches a register flag from the card that indicates the erased state of a byte - whether it reads as zero or FF (this varies with vendor/brand). The flag for my Transcend card says it erases to FF, and looking at the card with my hex editor on Windows, it is indeed all FFs except for the FAT, root directory, etc. The SDFat author says all the geometry used by his formatter (cluster size, alignment) is the same as the SD Association's formatter.
So then I formatted the same card with the Association's formatter in Windows using the "Overwrite" option (there is no Erase option). It got about half way through in 10 minutes, at which point I gave up. Looking at the card in the hex editor again, I see all zeroes in the first half, and all FF's in the last half. So "Overwrite" should be taken literally. It is writing zeroes to the entire card, leaving all the sectors in the written state, with no sectors left in the erased state. As Magic said in an earlier reply, I think it does this because it simply doesn't have access to the CMD38 command via the Windows driver, so the only way to remove all data from the card is to overwrite it. In other words, it is unable to erase the card. But that's just a guess.
Then I did a "low level" format of the same card in my Canon DSLR camera. This took about 10 seconds, and returned the card to all FFs. This is clearly a full erasure.
I haven't really done a test, but I just assume that if the card is erased, it will not be necessary to erase a sector before writing to it, and therefore tasks like high-speed data logging, or shooting stills in burst mode in a camera, will do better than if every sector is flagged as already containing data, which will require erasing before writing, and possibly even moving data around. While a card may work ok with no unerased sectors, on the margin as things speed up, an erased card will write faster. For data logging, that means sensors can be sampled more frequently, or be less subject to dropouts while waiting for the card to write, with an erased card.
I think the Association's formatter is fine for a Quick format, but I won't be using the Overwrite option. In fact, I think I'm going to dedicate a Nano and an SD card module to the formatting of SD cards. Once flashed to the Nano, the sketch will work with any terminal program (I use Termite). It could even be modified to operate stand-alone.
The SDFat formatter only does SD and SDHC, but there is a beta update in the works that adds support for SDXC cards. Just search Github for SDFat.
There's another example called AnalogBinLogger which logs 5000 ADC readings to the card per second. More about that if anyone is interested.
Here's the log of the SDFat SdFormatter session:
Type any character to start
This program can erase and/or format SD/SDHC cards.
Erase uses the card's fast flash erase command.
Flash erase sets all data to 0X00 for most cards
and 0XFF for a few vendor's cards.
Cards larger than 2 GB will be formatted FAT32 and
smaller cards will be formatted FAT16.
Warning, all data on the card will be erased.
Enter 'Y' to continue: Y
Options are:
E - erase the card and skip formatting.
F - erase and then format the card. (recommended)
Q - quick format the card without erase.
Enter option: F
Card Size: 8166 MB, (MB = 1,000,000 bytes)
Erasing
................................
.............................
All data set to 0xff
Erase done
Formatting
Blocks/Cluster: 64
FAT32
................
Format done