UDF jsou podle mě velmi praktické a používám je neustále.
Nejsem si jistý, jaké je zdůvodnění Microsoftu pro nezahrnutí ekvivalentu sys.functions do SQL Server 2005 (nebo SQL Server 2008, pokud mohu soudit), ale je dost snadné vytvořit si vlastní:
CREATE VIEW my_sys_functions_equivalent
AS
SELECT *
FROM sys.objects
WHERE type IN ('FN', 'IF', 'TF') -- scalar, inline table-valued, table-valued