For a long time, including in Drupal 7, it was possible to render cache something. For all that time, you had 2 ways of generating a cache ID:
- set
#cache[cid] - set
#cache[keys]
The first is basically just a concatenated version of the second. So they were almost interchangeable. In any case, it was fine for both to exist. In practice, almost nobody uses #cache[cid] though — almost everybody uses #cache[keys] (because it's easier to manipulate in alter hooks, for starters).
But ever since #2158003: Remove Block Cache API in favor of blocks returning #cache with cache tags landed a year ago, we've also had #cache[contexts], basically cid == keys + contexts_to_keys(contexts). So they weren't interchangeable anymore.
And since then, #2429257: Bubble cache contexts landed. Ever since, we have a bigger problem: cache contexts must bubble and thus must affect the cache ID generated from keys+contexts of render tree ancestors. But, we can't merge cache contexts with #cache[cid], only with #cache[keys]. Hence, using #cache[cid] effectively breaks cache bubbling.
Therefore, we removed #cache[cid].