I’m guessing getFlake has different behaviour than referring to . with :lf. One loads the flake as part of a directory and other recognizes it is a git repository, so it bases everything on the root of the repo?
I do agree, this is quite confusing. Might even be good to open an issue about this on github.com/nixos/nix ?