I think the performance impact of a function call is minimal in most cases, compared to the time saved having to not refactor things across a tree if you need to make a change to the behaviour. We can’t answer universally in the abstract.
Ultimately profiling is the answer. I only found Nix flamegraph or profiling tool? about this topic, though. But I will say, “performant” is relative, and if nixpkgs is involved, it will be slow. At best you can identify if there are major errors and correct those.