I don't think this is necessary.  Under normal cases, fragmentation would occur at payload boundaries and that shouldn't be much of an overhead.

An attacker can also send fragmented chunks, but then we would also need to worry about exhausing memory by allocing unnecessarily bigger sized chunks if we use 2**n.