In the end, I've solved this problem with creating a list of all Text functions.
Shared = #shared,
TextFunctionNames = List.Select(Record.FieldNames(Shared), each Text.StartsWith(_, "Text.")),
Result = List.Transform(TextFunctionNames, each _ & " = " & _ & ",")
The list is stored in a utility group, the load is disabled and I just copy all the values of the list into a record. This record, let's call it "All text functions scope", is then used like: Expression.Evaluate("my expression", #"All text functions scope").