micro-optimize dynamic allocation alignment

Previously, some parts of this optimization were impossible because the
alignment passed to the free function was not correct. That was fully
fixed by #17012.

Closes #17092
"guaranteed by jemalloc on this architecture", or is it actually part of the architecture's ABI?