I was able to work at home this weekend and found the answer. When calling
at UDF that does not access any database table and is used more like a macro,
the performance hit is negligible.
The raw difference in a 20,000 row dataset was 200 milliseconds. When I removed
the overhead of the three DateAdd functions it dropped to 100 milliseconds.
We are keeping the function in production and have dropped this as a candidate
for optimization.