The arena-pool-block hierarchy you're simulating is the real design of CPython's Objects/obmalloc.c — 256KB arenas split into 4KB pools of same-size blocks is exactly why creating and destroying millions of small Python objects (ints, small tuples, frame locals) is fast without hammering the OS allocator. This is the same size-class strategy jemalloc and tcmalloc use for general-purpose C++ allocation.