Проблема здесь не в constexpr. Если бы вы сказали
int *b = &a;
Вы получите ту же ошибку. т.е. "недопустимое преобразование из const int * в int *"
Мы можем исправить это, указав указатель на const int.
int const *b = &a;
Теперь мы можем добавить constexpr, и да, constexpr означает означает const
constexpr int const *b = &a;
, где b фактически является const. Это точно так же, как следующий
constexpr int const * const b = &a;
//^^^^^
// this const is made redundant by the constexpr.