Per quanto ne so, SQL Server determina se la tua funzione è deterministica e/o precisa. Prova a eseguire le seguenti query e guarda cosa ottieni:
SELECT OBJECTPROPERTYEX(OBJECT_ID('dbo.ufn_max_smalldatetime'), 'IsDeterministic')
SELECT OBJECTPROPERTYEX(OBJECT_ID('dbo.ufn_max_smalldatetime'), 'IsPrecise')