My guess is confirmation bias.
The single process program is multithreaded and all of the node stuff happens in a separate thread, which itself also spawns multiple threads.
Well, fair, it is a good test to my earlier assumption, if the node work is already in different thread(s) in bitcoin-qt, then technically my theory of "separate process = smoother repaint" doesn't really make much sense as it would only change the node work itself.
So if it is actually the same on both sides (bitcoin-qt as opposed to bitcoin-gui), excluding any hard-dollar difference between the two, would there be a difference in reported sensation/expectation of testing this "new" build?
You have more experiance but I think if you really want to resolve it now @ABCbits already noted the easy way. The binaries are in the same tarball in bitcoin-31.1/libexec/bitcoin-gui. Same build and same datadir and the same block range. Do this for an hour and time the window's not repainting any more then swap and repeat.
A good argument, and a much cleaner voicing of the matter than just guessing from that setup. Basically broflof's setup that started this had too much of the variables changing at once to get a testable case for it being a real difference or confirmation bias.
I think that the same tarball, same datadir, same block range, timed both ways is the right test. In any case, if someone actually does it, I would be interested in seeing the actual numbers.