Не факт, я пробовал использовать этот подход при разработке своей
HAL, в частности для хранения частот PLL. Результат был
отрицательный. Ну и вот это вот "неявный weak" - это хрень. Инлайн нужен для констант. Собственно, все constexpr значение имеют неявный inline, поэтому можно в заголовке писать что-то типа:
// header.h
constexpr std::uint32_t my_constant = 0xdeadbeef;