why do avr fuses need to be set when avr recognises crystal automatically
There are many different ways to generate a clock signal in a microcontroller.  You need the fuses in order to tell the microcontroller how to generate or find that clock signal.  The microcontroller cannot automagically detect the clock.

It may well be that your microcontroller defaulted to using a crystal with the right settings for the type of crystal you attached.

I am not certain about the Atmels, but here's some PIC setting types:


Three groupings of oscillators: Internal, External crystal, External clock
Crystal can be High Speed (>4MHz), eXtra high Speed (>16MHz), Normal speed [EC] (&lt;4MHz) and Low Power (32.768KHz).  Different electronics are required to handle the different speeds.
The external clock setting requires a clock input on only one pin.  This has to be set in fuses or it just won't work.
The internal clock signal could be generated in various ways - RC, crystal, etc.  Again, the µC needs telling how to do it.


You can also tell the µC to use (one or both of) its oscillator pins as IO pins.  Again, this is coupled with the oscillator fuses, so has to be set there.

Personally I do think that fuses for this kind of thing are a silly idea, and the clock signal could very well default to the internal oscillator on power up and then the firmware select another (faster, more stable, lower power, etc) clock signal to operate from without needing to faff around with fuses.