Because, f1 is a Lambda which type is kotlin.Function1, f2 is a Function Reference which type is kotlin.reflect.KFunction1.
KFunction1 has more info than Function1 (e.g., reflection info), it can be converted to Function1 implicitly by compiler.
In the case of you example:
I found the type parameter <T> is inferred to KFunction1<CharSequence, Boolean>. (I think that may be a bug of type inference system)
The type of first argument is Function1<CharSequence, Boolean> which can not convert to KFunction1.
However, what you want is List<(CharSequence) -> Boolean>, so you can explicit specify what the <T> is: