That way android is stuck with tons of 4th-party software publishers that are not even professionals in programming. Stores are full of working evolutionlessware. Why don't they just present "ok/nope" dialog and fail a system call after "nope"?
It's not that simple. The app I work on now is pretty complex, and the only way we were able to get runtime permissions in normally was to commit to a complete rewrite of the app (that wasn't the justification for the rewrite). It's just not always the highest priority.
That's what I'm talking about. Must have used better wording to make it clear, sorry. It is possible seamlessly at the OS level (as one of commenters noted about CM). But OS devs just kicked the responsibility to app devs.