Você ainda precisa executar essa função 100 vezes para cada linha, certo? Não vejo nenhum atalho aqui.
Se você quisesse pegá-los todos de uma vez, você poderia fazer
SELECT dbo.func(@param1, a.point) as fValue1,
dbo.func(@param2, a.point) as fValue2 ...
ou algo assim, mas fazer um loop por eles parece mais eficiente para mim de qualquer maneira.
Suponho que você possa usar um cursor para recuperar cada
a.point
valor uma vez, então aja 100 vezes, mas isso é muita codificação e não necessariamente uma solução mais simples.