As you correctly pointed out this is unexpected and it definitely (used to) work properly. Can you add —verbose to the fwupd-refresh unit that causes this behavior? Maybe we'll get some more hints.
Also if you raise this bug upstream (https://github.com/fwupd/fwupd <https://github.com/fwupd/fwupd>) others may have more ideas.