Modern allocators (jemalloc, mimalloc) do pooling optimization just as well as GC.
The point of non-GC language is usually about pointing directly to the source data instead of copy and having value type that nicely fit together in the same memory page instead of jumping around in heap space.
I know JIT can do all that, but reliably? We'd need Sufficiently Smart Compiler.