RESET(bar) Pin of ATmega16
Not everything gets cleared on a reset, only the specified bits in the specified registers get set to the initial values given in the data sheet.

You can detect what kind of reset just happened (power on, external, watchdog, etc) by checking the reset flag bits in the MCUCSR register at the very start of your program. Pulling the RESET pin low will generate an "external" reset, so the EXTRF flag will be set when your code starts executing after the RESET pin is released.