Hello,
i made some test with the arduino/serprog and some different flash-chips:

M25P16 -> all ok (erase and write has status "untested" but works ok!)
M25P40 -> all ok
W25X40 -> all ok

25F512 -> erase not working, always same error:
flashrom v0.9.7-r1757 on Linux 3.10-2-amd64 (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

flashrom was built with libpci 3.2.0, GCC 4.7.3, little endian
Command line (5 args): ./flashrom -p serprog:dev=/dev/ttyACM0:2000000 -c AT25F512 -VE
Calibrating delay loop... OS timer resolution is 1 usecs, 1290M loops per second, 10 myus = 9 us, 100 myus = 111 us, 1000 myus = 1120 us, 10000 myus = 9990 us, 4 myus = 5 us, OK.
Initializing serprog programmer
Baud rate is 2000000 now.
serprog: connected - attempting to synchronize
...
serprog: Synchronized
serprog: Interface version ok.
serprog: Bus support: parallel=off, LPC=off, FWH=off, SPI=on
Warning: Automatic command availability check failed for cmd 0x08 - won't execute cmd
Warning: Automatic command availability check failed for cmd 0x11 - won't execute cmd
serprog: Programmer name is "serprog-duino"
serprog: Serial buffer size is 65535
serprog: Warning: Programmer does not support toggling its output drivers
The following protocols are supported: SPI.
Probing for Atmel AT25F512, 64 kB: probe_spi_at25f: id1 0x1f, id2 0x60
Found Atmel flash chip "AT25F512" (64 kB, SPI) on serprog.
Chip status register is 0x00.
Chip status register: Write Protect Enable (WPEN) is not set
Chip status register: Bit 6 is not set
Chip status register: Bit 5 is not set
Chip status register: Bit 4 is not set
Chip status register: Block Protect 1 (BP1) is not set
Chip status register: Block Protect 0 (BP0) is not set
Chip status register: Write Enable Latch (WEL) is not set
Chip status register: Write In Progress (WIP/BUSY) is not set
Erasing and writing flash chip... Trying erase function 0... 0x000000-0x007fff:E, 0x008000-0x00ffff:EError: invalid response 0xFF from device
spi_block_erase_52 failed during command execution at address 0x8000
Reading current flash chip contents... Error: invalid response 0xFF from device
Can't read anymore! Aborting.
FAILED!
Your flash chip is in an unknown state.
Please report this on IRC at chat.freenode.net (channel #flashrom) or
mail flashrom@flashrom.org, thanks!


LE25FW406A -> not supported! Can i do something to help you support this chip?

AT45DB161D -> all ok, perfect work!

AT45DB011B -> not supported!
You said that this chip (B and earlier) has no identification support. But i am not sure if this is relay true. Let me explain:
Years ago i build another programmer for the parallel port. Very cheap, but not relay stable, or let's say very unstable! :-\
But the tool from this programmer is able to detect the chip:

And now i have a clean read from this flash and can test it with flashrom ;-)
Maybe you can contact Adam Dybkowski and ask how it works.
This is/was the "Project-Page": http://dybkowski.net/content/en/node/15
And i also have his email if you need it.

Wish you a nice day!

Greetings

Marc