Why does running `mix ecto.create` trigger a new compilation?

Each mix env does have it’s own artefacts and mix test defaults to running in the test mix env, while other mix tasks, which don’t have a preferred env, default to dev.