Man kann die AVRs auch ohne die avr-Lib programmieren. Bei Programmen rein ASM ist das sogar eher die Regel.
Für Programme in C wird man aller Regel aber die AVR-lib nutzen. Ein absolutes muss ist das aber auch nicht, wenn man die benötigten Teile selber zur Verfügung stellt.