That is what I would prefer, but we could ship it as is if you want.

I just dislike mocks because they are brittle (e.g. we depend on the SQL query being quoted in a specific way), and they can allow tests to pass even when the interface being mocked changes in a way that breaks the code.

If your concern was unnecessary memcache/database requests, then assert_memcache_operations or assert_queries is a better way of ensuring that.  It is easy to miss requests because they are for a method that wasn't mocked.