A question about struct pool_header and struct arena_object

Hi, I am reading CPython source code about Python object memory allocator, and I have a
question about struct pool_header and struct arena_object.

By the allocator design, arena is split into multiple size-equal pools. struct arena_object is used to represent the arena memory, and struct pool_header is used to represent the pool memory. struct arena_object is outside the arena memory, and has a pointer address to point to arena memory. But struct pool_header lives inside pool memory, just at the beginning.

My question is, why not both live outside or inside? Is that intended or casual?