Пользовательские распределители может быть быстрее, когда у вас много мелких объектов, для больших объектов (в этом сегменте должны находиться массивы мелких объектов), это менее вероятно. Они не предназначены для размещения множества мелких объектов.
Я не уверен, что ожидал бы, что буферы uint8_t будут распределяться на порядок быстрее на пользовательском распределителе.
Я бы не сказал, что замена распределителя может быть более надежной. Вы заменяете то, что доказало свою эффективность.
Если у вас фиксированный объем памяти, вы можете просто выделить все заранее и скопировать значения, когда они выйдут из строки. Я бы истолковал это как более простое решение, чтобы избежать этого узкого места.
Предполагая, что это узкое место. Вы профилировали это правильно?