Aquí no hay verdaderos pros o contras, al menos ninguno que deba obligar a un programador cómodo en un idioma a tener que usar el otro.
El rendimiento no debería ser un problema. Es poco probable que escriba un trabajo pesado con muchos mensajes en los bucles internos si es un buen programador de Obj-C, lo que significa que realmente escribirá esos bucles internos en C. Si no es bajo programador de nivel, lo más probable es que el trabajo pesado lo realicen las bibliotecas que elija para diferir eso también, y estará a merced de lo que sea que hayan elegido hacer.
La portabilidad es un problema real, si te importa. Si no, entonces meh. Ser multiplataforma no es el final, todo será todo. Ser exitoso en uno primero sería bueno :) Siempre puedes portar más tarde. Si no está planeando cuidadosamente ser multiplataforma desde el día 1 de todos modos, solo estar en el mismo idioma no lo llevará muy lejos: hay muchas más diferencias reales entre las plataformas que deben abordarse.
Terminar el proyecto es más importante que preocuparse por la tecnología, y si eres más productivo en Obj-C, entonces quédate en Obj-C.
¿Mi preferencia? Soy un chico de C ++. Me gusta Obj-C muy bien, pero estoy feliz en C ++, y yo hago escribir código de plataforma cruzada.