Because Julia often tries to to give you the tightest type inference possible, as this often helps with performance. It is strange for functions because each function has its own type, so [func1] will become a Vector{typeof(func1)} which is technically more performant but at same time almost useless (because the vector can now only store references to the same single function instead of multiple distinct functions, defeating the purpose of a Vector). The same happens if you do [nothing] (the type will be Vector{Nothing}) but here it is more understandable because there is no intermediary type between Nothing and Any so the only reasonable types we could expect are either the almost useless Vector{Nothing} or the very inefficient Vector{Any}.