I don't have any problems with this patch, but... isn't APR's pool system doing way too much work? If I were implementing it, I would just malloc() a new block for each apr_palloc(), chain it into a list, and free() all those blocks when the pool is cleared or destroyed.
Presumably the extra work is for some theoretical or actual performance gain, since Apache is very performance-sensitive. Have people actually measured a performance benefit from the current code over the dumb implementation? (Apologies for, most likely, treading on well-trammeled ground.)