I prefer to have full controll over what happens when.
Sometimes I am simply offline, and when I do eg. a cargo build or rebar3 build they error out with a huge complain about beeing unable to load their deps. This is annoying. I knew in advance that I’m offline, you don’t need to tell me. If though you had told me that dependencies are missing and I need to call something else to download them, I had the option the choose between using a mobile connection to download them or to do something else.
Also both tools I mentioned, do not have an actual task to trigger just the download of deps, without anything else. This is also problematic when building containers with some things cached, and requires some nasty hoops to jump through.
Running mix deps.get does have the sideeffect of adding new versions to mix.lock for dependencies not present before. Personally I like that this does not happen for commands, which might not be expected to cause sideeffects.