Besides, of course, there is a difference between the needs of teachers and those of researchers and other users - for many purposes user defined functions are too inefficient for serious work (and even more so when these users are not expert programmers).