At a 5% ISR budget, you probably start to allow the sorts of functions that a moderately careful programmer probably expects to be able to put in a timer tick callback, but now you're introducing about 50 microseconds worth of random latency that can occur between any two statements in the main loop() code, which is pretty significant, and you have to start explaining to people why their sketches are acting sort of random.
I guess what it really boils down to is that providing the ability to tie into the timer tick makes it possible for ANYBODY to put code in the ISR path, and I don't TRUST most people to do that well enough that it won't cause more problems than it solves.
What makes you think that 50us or even 100us of random latency [is bad]it all depends on whether you are trying to do precise timings
a novice using a library
You might as well decide not to trust people to do direct port access, or to change the analog reference
Surely Arduino isn't about preventing people from doing things
Having two 1ms tick interrupts going off uses more CPU time in ISRs than having one, because of the extra context save.