Great stuff :)
However, I don’t believe using the viewer request is a good idea.. Even from just the extra cost since it’s being called for EVERY request to CF.
However, as you can see here, we asked and Amazon delivered. They now support whitelisting the Accept-Encoding HTTP header so they will not strip off the header and will keep br. It will still mean different cache keys per browser, but worth it IMO compared to using the viewer request event.