From an engineer's perspective, the AVR 8-bit instruction set is far nicer to work with than the 8-bit PIC. It's been a few years since I've been an embedded electronics engineer, but I seem to recall PIC not having an easy way to implement a stack, and hence a (proprietary) compiler which didn't support reentrant functions.
AVR OTOH has instructions which allow one to easily manipulate a stack, and since GCC targets AVR, you don't have to deal with Microchip's crappy compiler and can use whatever fun C constructs you wish and still get decent code.
Pretty apples to oranges here when saying something as general as '8-bit PIC' there are many architectures within that family, 4 last i knew. The low end ones are not intended for coding to with C anyway (although there are some poor compilers that try). The PIC18 series isn't bad to work with in C, I used the C18 compiler at the time and its 95% ANSI C.
I believe there is gcc support for the pic24/dsPIC (16bit) and the PIC32(32bit).
All that said last I knew Microchip still leads in 8bit mcu global market share.
For other readers, AVR:
http://www.atmel.com/products/microcontrollers/avr/default.a...