I did a little benchmark test today that had some enlightening results.
First of all: did you compile Parrot optimized? Because:
I thought the problem might be in the small object allocator,
You actually have a similar thing, but mainly inlined. Object allocation and DOD need optimized compiles.
saveall newsub P1, .RetContinuation, back invokecc
You are creating *two* RetContinuations with that.
leo