This is why I love direnv (the tool) and just a simple .envrc (not .env). It has none of the problems posited in the OP's article. It assumes nothing, only that direnv manges loading up the .envrc into your shell.

I moved from direnv, asdf and Task combo to mise.

Mise env vars management is much better. If you really need a script to generate env vars (like what you can do with direnv, there is a clean mechanism for that).

If you need to do something when you enter the directory of a project, there is also a mechanism for that.

Mise is really nice.