The problem is caused because favorite icon requests are asynchronous. They are often (or perhaps always) not returned (or maybe even made) until after the webpage "finishes" loading. Sometimes, they can be significantly delayed.
If a website with a favorite icon is loaded and then another website without a favorite icon is loaded the favorite icon for the first website might be returned after the WebView has moved on to the second website. `onReceivedIcon` does not provide any mechanism to determine which URL requested the icon.
https://developer.android.com/reference/android/webkit/WebChromeClient#onReceivedIcon(android.webkit.WebView,%20android.graphics.Bitmap)
In the past, I was able to work around this a bit by discarding any icons received while a website is loading, as these will be from previous websites. However, sometimes a favorite icon is so delayed that it doesn't load until after the second website has finished loading, which leads to this bug.
There isn't really anything I can do to work around this in Privacy Browser, but I will submit an upstream bug to the Chromium project and see if they will address it there.