If anyone in interested I wrote a utility to help detect the ideal blocksize and alignment for writing to a device (particularly cheap flash devices). It allows you to set the read pattern, blocksize, and offset (the offset may be useful on drives that correct for XP's weird alignment of partitions); it will then benchmark writes with those settings. http://dansted.co.cc/scripts/detectblocksize.c
For example, I found on my device if we write sequentially, writing of blocks of 64K is sufficient to maximize the data transfer rate, while if blocks are written randomly, 4MB is required.
This utility was discussed on the linux-bcache list, but the old mail archives don't seem to be on the web. I could discuss this further if anyone is interested.