You're right that, looking solely at `init`, a flag could make sense to choose the backend.
The bigger picture here though: `jj git` is the subcommand that prefixes all commands that are git specific, rather than being backend agnostic. There is also `jj git clone`, `jj git fetch`, `jj git push`, etc.
For a different backend, say Google's piper backend, there's `jj piper <whatever>`.
This means that backend specific features aren't polluting the interface of more general features.
>There is also `jj git clone`, `jj git fetch`, `jj git push`, etc.
If the compatibility isn’t automatic… why would I bother with jj commands here at all? “Git with extra steps”