I wouldn't mind if the XLibre guys did a fork of this that just fixed how browsers behave and to showcase XLibre-specific features not on legacy Xorg, IE Xnamespaces, whatever comes next.
I have also since learned a little more about this issue. I am fairly certain now that the issue is due to systemd changing their defaults. If you look at how open_temporary_icon_file() works upstream it utilizes g_get_tmp_dir(), which the glib docs mentions uses TMPDIR and falls back to /tmp if it isnt set. So unless AccountsService sets its own TMPDIR (it doesnt), then this naturally lands in your shared /tmp which doesn't work anymore for reasons stated previously.
But there's no need to rewrite the entire thing to set a custom directory for this, after skimming the source I found that you can actually fix this by changing a single line of code; that being g_get_tmp_dir() with get_icondir() This is an internal helper thats already defined in accountsservice's util.c that retrieves the static icon directory variable. This base path is /var/lib/AccountsService/icons, which is a fixed directory exposed to accountsservices. So basically a patch can have it stage icons right there instead.
I wrote one to test this and can confirm it fixes the problem without the need for an override exposing your system's /tmp
Ran Openbox on Debian for a while with tint2 taskbar, jgmenu startmenu and PCmanFM for desktop icons. It was the most stable system I have ever used. Shoutouts to IceWM too: