Mit PIC hast du eine grössere Auswahl von Typen mit sehr unterschiedlichen Peripherien. Bei AVR gibt es nicht so viele Typen (zumindest noch).

AVR ist ein komplettes Neudesign, das noch relativ jung ist, währen PIC schon viel älter ist und etwas angestaubt. AVR wurde speziell für den Einsatz unter Hochsprache optimiert, so hat man sich z.B. gegen eine anfangs geplante segmentierte Speicherarchitektur entschieden, die für Compiler nur schwer verdaulich ist. (Die GCC-Ports für PIC gibt's AFAIK auch nur für diejenigen mit linearem Adressraum).

Ganz nett an AVR finde ich, daß er praktisch ohne Kosten in C zu programmieren ist: avr-gcc (kostenlos), ein Progger (kostenlos) und Selbstbastel-Adapter mit Teilen für weit unter 5€.