Coming form an Oracle world, UDF's are very restrictive and tend to be a half cocked effort. I have this sneaking feeling that MS is not expending much effort in t-sql (ie. where is proper exception handling! which is fundamental to any language). Not being able to use temp tables, call stored procs etc is a right pain and makes the functions useful for only the basic operations.
I personally believe UDF's was a last minute add in that tends to highlight MS push to the .Net version of sqlserver where stored procs etc can be in VB, C#, C++ etc that are much more feature rich.
Anyhow, good article all the same
Author of "SQL Server Backup, Recovery & Troubleshooting"
Author of "SQL Server 2k for the Oracle DBA"