yes because one cache bucket only contains pointers of a minimum size so the allocation needs to chose one bucket higher if the size is not divisible by the granularity.
E.g. if you put a pointer of size 7 into the cache, it goes into bucket 1 (4-7 bytes), retrieving a pointer of size 7 needs to get it from bucket 2 (8-11 bytes) as bucket 1 does may contain a right pointer but there is no guarantee for that.

this allows to store larger pointers with constant time lookup without wasting more than 3 bytes per pointer, though maybe its an unnecessary complication.