I think the overall end goal would be to move as much as possible of
the completion to the Git project itself. For example; git commands
have the --git-completion-helper option, which throw something like:
% git version --git-completion-helper
--build-options --no-build-options
There is no _git_version() specific function in Git's bash completion,
and yet when you type "git version --<tab>" the options are completed
anyway.
This helps so that new commands get some automatic completion, even
when nothing specific for them is done in the completion script.
It has been discussed in the mailing list to add something similar for
zsh specific completion, so the descriptions are generated too, and
shorthand forms, perhaps with --git-completion-helper=zsh.