it’s not very good that this happens …
because the call to BlueprintPure output, the function is always called on a new one and if inside the search it will also be called on a new one. In contrast to the usual BlueprintCallable, in which the output cache hangs in some magic way, and it can be taken as much as you like without calling the function again.
the case when you need to duplicate functions separately for c ++ const to be called in c ++ and separately for BP BlueprintCallable which will call the c ++ function.