Let's think about it. Would it make sense if the container had to create a new instance of the class (declared in the function-class tag), call the function (which must be public anyway), and then discard the instance ? There's no point in making new instances, that's why EL functions are static.
Why using functions ? I'm not sure about the real "raison d'etre". But let's imagine that you have some existing code, like common methods in a utility class. Wouldn't it be cool if you call those utility methods, instead of making another tag ?