Yes, and we have disabled statistics at our site for the same reason. But I think the approach, i.e. to use the existing data in mdl_log, is not entirely stupid. If you use a scheduled task to crunch your data on a nearline copy of the db, (e.g. a slave), then copy the results back to the master database for presentation to the user, it will have virtually no impact on the user experience. Having said that, adding one more DB transaction to a page view probably won't affect it too much either.