Я не знаю, будет ли это быстрее, но, конечно, будет проще. И помните: чем меньше у вас кода, тем меньше ошибок.
NSShadow работает с любой формой, прямоугольной или иной. Фактически, некоторые вещи, которые мы обычно не воспринимаем как тень, могут быть реализованы как тени. Например, свечение - это просто белая «тень». Я предполагаю, что кольца фокусировки являются тенями внутри.
Вам не нужно создавать NSBezierPath. Рисование изображения с тенью будет работать нормально. Единственное, чего нет, - это рисовать градиент (как в NSGradient).
Для удобства других читателей: все это в равной степени относится к кварцу, к теневым свойствам CGContext и исключению CGGradient и, возможно, CGShading.