In our app we have over-ridden the findObject(Object id, boolean validate, boolean checkInheritance, String objectClassName) method, so that it would not actually validate objects that come from the cache. If the cache is maintained properly and trusted, then it should never have an object that does not exist in the database. If that is the case, then re-validating every object from cache is just a huge waste of database resources. :)
We simply changed the "if (validate)" near the bottom of the function to be "if (validate && !fromCache)" and have seen a great performance improvement.