I use the use-package and bind-key packages in my config.

The use-package would be nice to have in the core but I think bind-key should not be put into the core as it is.

The primary reason is that it creates duplication and thus confusion for new users.

For define-key, we have

(define-key MAP KEY-VECTOR COMMAND)

whereas we have

(bind-key KEY-STRING COMMAND MAP)

Notice the shuffling of arguments and difference between the way the keys are to be represented in the argument.

I see the benefits of bind-key*, bind-keys and bind-keys*, but I believe that that should be merged with define-key.

The describe-personal-keybindings is useful. But how will it work as expected if packages in the core started using bind-key macros. We then need a robust means to distinguish between the default bindings and the bindings in user config.

I don't have a proposal for the complete solution, but these are few things that didn't feel right to me about putting bind-keys in core.