That's interesting, I wonder why? The auto-reset that the Arduino uses seems to be pretty reliable way to force a restart into the boot-loader.
The difference is that the auto-reset used when uploaded a sketch is performed by an external
voltage source instead of directly from the MCU.
The reason using a digital pin to act like an external reset is discouraged is because there is a minimum pulse duration that is necessary to properly reset the chip. For a 168 it's 2.5us. When you use a digital pin to programmatically reset the chip, the time from initiating the reset until the minimum pulse duration puts the chip in an undetermined state. There's no guarantee that the digital output that pulling your reset low will stay low long enough and not leave the chip in a strange state. Remember that the digital pins are 3-state and will probably get changed to hi-Z very early in the reset process.
If you really want to do something like this, build a simple 555 monostable timer circuit connects to the reset pin. Then use the digital output to trigger the 555 timer.
Lastly, you can use the watchdog timer method but you have to be sure to use a "modified" bootloader like ladyada's "no-wait" version. As mentioned in the warnings above, the default bootloader does not disable the watchdog timer and your chip will keep resetting.