Todavía necesita ejecutar esa función 100 veces para cada fila, ¿verdad? No veo ningún atajo aquí.
Si quisieras obtenerlos todos a la vez, podrías hacerlo
SELECT dbo.func(@param1, a.point) as fValue1,
dbo.func(@param2, a.point) as fValue2 ...
o algo así, pero recorrerlos me parece más eficiente de todos modos.
Supongo que podrías usar un cursor para recuperar cada a.point
valor una vez, luego actúe en él 100 veces, pero eso es mucha codificación y no necesariamente una solución más simple.