Autant que je sache, SQL Server détermine lui-même si votre fonction est déterministe et/ou précise. Essayez d'exécuter les requêtes suivantes et voyez ce que vous obtenez :
SELECT OBJECTPROPERTYEX(OBJECT_ID('dbo.ufn_max_smalldatetime'), 'IsDeterministic')
SELECT OBJECTPROPERTYEX(OBJECT_ID('dbo.ufn_max_smalldatetime'), 'IsPrecise')