Here's a little code that I use to automatically use local sorting when all the data is present on page 1. I'm not sure if it works for all cases, but it works for my paging setup. Maybe this could be integrated into grid as a default feature.

Code:
dataModel.addListener("load", function() {
   // if the first page has less rows than the max, we have all the data and local sorting will be faster
   if (dataModel.loadedPage == 1 && dataModel.pageSize > dataModel.data.length) {
       dataModel.remoteSort = false;
   } else {
       dataModel.remoteSort = true;
   }
});