Unfortunately, the auto-reset behavior is "automatic" on most systems - the DTR signal used for reset goes "true" (which causes an AVR reset) when the COM port is opened by a PC-side application, and "false" when the port is closed. (this is why sketches will reset when you open/close the serial monitor, or other terminal emulators.)
The code in avrdude that does the explicit DTR wiggling was added to support the small number of systems that didn't do this, or that needed RTS wiggled instead of DTR (certain USB/Serial cables and adapters.)
Avrdude changed at some point, and uses a lot of "raw SPI command" STK500 exchanges instead of specific STK500 commands that would do the same thing. The bootloader has limited support for "raw spi command" (it's not using SPI, after all), and wants the old commands.
Here is stk500v1 reading a device signature:
avrdude: AVR device initialized and ready to accept instructions
Reading | | 0% 0.00s
avrdude: Send: V [56] 0 [30] . [00] . [00] . [00] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [1e]
avrdude: Recv: . [10]
avrdude: Send: V [56] 0 [30] . [00] . [01] . [00] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [94]
avrdude: Recv: . [10]
Reading | ################# | 33% 0.03s
avrdude: Send: V [56] 0 [30] . [00] . [02] . [00] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [06]
avrdude: Recv: . [10]
Reading | ################################################## | 100% 0.04s
avrdude: Device signature = 0x1e9406 (probably m168)
And here is the same setup using the arduino programmer type:
avrdude: AVR device initialized and ready to accept instructions
Reading | | 0% 0.00s
avrdude: Send: u [75] [20]
avrdude: Recv: . [14] . [1e] . [94] . [06] . [10]
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9406 (probably m168)