I'm mostly thinking of functions with side-effects, much like {{ $var := "val" }}. It doesn't make much sense for these to return anything.
Not allowing 0-valued functions limits functions you can call on objects in templates as well. For example, a trivial map implementation:
type MyMap map[string]interface{}
func (m MyMap) Set(key string, val interface{}) { m[key] = val }
And then in your function map:
"Map": func map() MyMap { return make(MyMap) }
You can't actually use Set in a template as it has void return.