If you extend it out to 8 bits you can pretty nearly store all the html tags (it'd give you 256 tags to play with).
Or just serve the SVG file and use <foreignObject> to embed the HTML, and include <link rel="icon" href=""> inside it. In theory you should be able to define a <view id="icon"> and use <link rel="icon" href="#icon">, but in practice neither Firefox nor Chromium seems to be handling that properly in a favicon, which is disappointing.
Oh yeah and favicon isn't part of the DOM.
A quixotic windmill tilt if ever I saw one.
So you could layer this experiment: favicon is svg, that contains encoded raster, whose bytes are encoded html.
At the very least it would make a mindboggling CTF step.