I finally circled back around to this and finished my prototype. Testing against a database with 45,000 appointments and 450 recurring appointments, I am actually seeing a 10-20% increase in xdebug_time_index values for getEventList(). I'll have to find calendar performance improvements elsewhere.