(sorry for the series of responses!)
It also may be possible to name the query passed into util_memoize differently, causing the query dispatcher to find it. Or the QD could search up the proc stack looking for a match rather than just in the current context.
In short, no need to write off the QD because of these calls.