Эти два функционально эквивалентны, но, как отмечает rpetrich, могут работать внутри системы немного иначе. Это не должно иметь значения для вас, используйте то, что кажется вам более удобным. Более того, хотя разница в производительности незначительна, на практике это вряд ли будет иметь значение для вашего приложения.
Но все это упускает важный момент: оба бессмысленны. Написав @ "foo", вы уже имеете полностью функциональный объект NSString. Нет необходимости возиться с дополнительными методами для дублирования строки; это проще и быстрее сделать:
foo(@"blah")