A random fact from before the “before” in the article: the cache for all resource types used to be the same. We (ab)used this to do preloading before it was available in the web platform, e.g. download a JavaScript without executing it:
var js = new Image();
js.src = 'script.js';
js.onerror = function(){/* js done */};
Then some browsers started having a separate image cache and this stopped working