Base._return_type in generated function

The manual warns against

Interacting with the contents or methods of Core.Inference in any way.

in generated functions. Does this mean that I cannot call Base._return_type? What can go wrong?

Can I call a function that does the same computation for me using Base._return_type, but it is defined outside (and before) the generated function?

The problem is that the generation can happen at any time, so return_type will hardcode the state of the defined methods at an arbitrary time point. I think you can still call return_type from inside the generated expression, i.e. the part which will be called at runtime, since it works like a normal function.