O ile wiem, SQL Server sam określa, czy twoja funkcja jest deterministyczna i/lub precyzyjna. Spróbuj uruchomić następujące zapytania i zobacz, co otrzymasz:
SELECT OBJECTPROPERTYEX(OBJECT_ID('dbo.ufn_max_smalldatetime'), 'IsDeterministic')
SELECT OBJECTPROPERTYEX(OBJECT_ID('dbo.ufn_max_smalldatetime'), 'IsPrecise')