Mis principales candidatos son: el SPI o el CAN. Hasta ahora va a ser el SPI porque tengo muchos esclavos y me resultaria bastante costoso comprar PICs que posean CAN incorporado...Además, mi aplicación requiere de un tráfico de datos bastante elevado(1kBps por esclavo) y el CAN de los PICs es el de baja velocidad(125kbps) por lo que podría con el SPI intentar llegar a velocidades más altas(si la capa física me lo permite).
Algo esta mal leido o interpretado.
El CAN en los PICs llega a la maxima velocidad sin problema alguno, salvo que uses un PIC que no soporte mas de 20 Mhz de clock, todos los que lo tienen soportan 1 Mbit de velocidad (esa si es la maxima).
Si. Es verdad. Parece que trabajan en 1mbps. Mea culpa.
Comparemoslo con SPI, ya que I2C no puede llegar a participar en la contienda...

Ventajas sobre SPI:
- Admite 128 nodos por norma, pero si el trafico de datos es menor, con direccionamiento de 29 bits creo que vas a tener los nodos que quieras, no??
- La mayor parte del protocolo la resuelve el hardware, admite filtrado de IDs, por lo cual se puede armar una red con diferentes niveles de relacion que es improbable hacer en SPI

- Usa solo dos cables sin importar la cantidad de nodos (en SPI necesitas los tres hilos mas el pin de seleccion..
Hagamos una cuenta simple, preciso 32 nodos, son 3 pines de comunicacion mas... 32 pines CS!!! Preciso nada mas y nada menos que 35 pines, y bueno pongo un PIC de 100 patillas, total!! 
No, no es necesariamente asi:
1) Como dije arriba, solo necesito comunicacion unidireccional. Del maestro a los esclavos. Por lo que puedo obviar la senial SDI;
2) El CS es OPCIONAL. Si te las rebuscas un poco no necesitas un CS por esclavo...Podes implementar un solo CS para todos. Cuando ese CS se activa, es porque estas por enviar el ID que vas a usar para identificar al esclavo que queres mensajear. Todos escuchan entonces el ID y si no es el suyo ignoran todo el trafico hasta que el CS vuelva a activarse. Es similar a lo que hace el CAN con su ID y flags para filtrar mensajes, solo que por software;
- Cualquier nodo puede ser Master en un momento dado, enviar o requerir informacion de otro sin molestarse por las colisiones que son resueltas otra vez `por el hardware. Esto permite enviar un reporte por excepcion, por ejemplo, una temperatura alcanzo un valor de setpoint, el nodo la transmite a uno, a varios, o a quien lo quiere escuchar. Esa tecnica se llama productor/consumidor y realmente permite hacer cosas espectaculares!!
Como dije, no necesito bidireccionalidad...
Desventajas respecto a SPI:
Salvo la velocidad, que podrias llegar a mas de 1 Mbit con bastante esfuerzo, otras no encuentro.
A eso sumale que un uC con CAN no baja de 10 dolares en Argentina, mientras que uno completito con SPI para lo que yo quiero esta menos de 4 dolares(16F887)...y supongo, bien o mal, que necesitas otro integrado para acomodar los niveles a los que exige el protocolo CAN, asi que tenes unos dolares mas ahi por "nodo".
PD: No estoy en ultra defensor del CAN, solo es un analisis objetivo. 
No se noto en absoluto...

Yo no digo que no sea mejor, pero la relacion costo/beneficio para mi proyecto me parece que no lo merece.