Зря не верите, все современные компиляторы насколько я знаю оптимизируют это в релизбилде. Другое дело что они не всегда по коду могут сказать что ((uint)(rx_buffer+5) & 3) == 0. Но в этом случае ни один, ни второй метод не будут соптимизирован.
Можно сделать аля:
Код
uint64_t inner_buffer[x];
uint8_t *rx_buffer = static_cast<uint8_t*>(&inner_buffer[0]) + 3;
И продолжать жечь в духе первого поста. Только возможно еще и с индексами, а не с адресной арифметикой.