(1) The 96-element list takes memory space. Programmers, like I, guess more than they think will be enough but usually underestimate or feel constrained by the total memory available.
The actual amount of memory it takes to store that 96 element list and 576 element event list shouldn't amount to more than a few kb.
Even if memory was a problem, you could store that information on the HDD.
With indexing and memory paging, that shouldn't cause much if any performance hit.
(2) The list must be scanned for each entry, every time the schedule changes and maybe every time a program is recorded.
The Daily Schedule list must be updated then, but DS provides a short list to look for new starts.
-Ken
I suspect that this is the real reason that they limit it.
If you would increase the timer and event list, then with the current program logic, things would probably come to a crawl.
I think that it probably would be possible with the help of indexing and other optimizations to alleviate this problem, however given how complex the logic must be to get the behavior of timers (at least reasonably) correct, I imagine that they're reluctant to modify that code.
I'm usually at or close to the 96 timers / 576 events limit, but most of that amounts to skipped events.
Currently, SlingGuide tells me I have 95 timers, 141 scheduled, 387 skipped, and 42 conflicts.
Once I go through and manually skip more of the 141 scheduled, I should end up with maybe 5-10 of actual events per day.
For today for example this is probably my actual event list:
Attack of the Show!
Smallville
Chuck
Kyle XY
Heroes
Medium
Saving Grace
The Daily Show With Jon Stewart
The Colbert Report