Why not? I don’t know in what context to interpret that statement but you can absolutely do this in C++.
Regarding your other problem:
You can call Blueprint functions from C++ quite easily with UObject::CallFunctionByNameWithArguments.
However, I don’t think you can get the return value from this directly. The function eventually calls UObject::ProcessEvent with the function and the parsed command string as arguments. If you look into the source code for that I am pretty confident you could find out how to retrieve the return value as well.
If that doesn’t work out and you are pressed for time a less pretty solution would be to make your function that you call with UObject::CallFunctionByNameWithArguments cause some side effect that you can check afterwards for the result.