Two points:
- We should not advertise "store" (and "create" for that matter) in
the end-user facing documentation. IIRC, "git stash -h"
deliberately omits 'create'; having it in the documentation is
unavoidable, but it was a mistake that it was not marked with
"this is most likely not what you want to use; see 'save'".
It may even be better with a leading underscore or two in the
name that clearly marks it as "not meant for direct end-user
consumption".
- The error message store_stash() gives should not be hardcoded in
that function.
Save-stash may want to keep saying 'the current status' as it
said before, but a caller like your rebase-autostash will not be
saving the "current" status and would want to have a different
message.
Other than that, the overfall structure of the patch looks OK to me.