Infinite recursion encountered, at undefined position, with callPackage in overlays

Thanks for the quick reply!

You remember correctly: rec is documented as an anti-pattern, with some pitfalls including those gnarly infinite recursion errors.

Below are the prepended let binding and other function changes I made, based on the pname + version pattern seen here.

let
  pname = "scientifica";
  version = "v2.1";
in
stdenv.mkDerivation { 
# removing 'stdenv.' results in "undefined variable 'mkDerivation'" error
  name = "${pname}-${version}";

The new overlays/scientifica/default.nix function successfully builds with nixos-rebuild test and nixos-rebuild switch. However, all Nix utilities mentioned throw the same errors mentioned in the OP.