Still getting the error that /etc/udev/rules.d/99-vcio-rewrite.rules exists and halts the updates. Removing the file and re-starting the update resolves the issue.
I just upgraded here and also ran into the error.
It’s weird that it’s still the case.
I’ve made a pre_upgrade() section in the .install file for the package, which should remove that file if it exists, before upgrading…
Does the file conflicts check occur before pre_install() scripts run?
It might happen before. If it does, I don’t know how to get around it.
Not sure if this is possible or desired. But what is required is the appending of a line to the file, rather than replace the file …
echo 'SUBSYSTEM=="vc-sm", GROUP="video", MODE="0660"` >> /etc/udev/rules.d/99-vcio-rewrite.rules
That will make the file if it does not exist and append to it, if it does.
What I want, is for a package to actually own the file.
This will deliver what you want, but you may not like it. 
sed -i -e 's/etc\/mkinitcpio.d\/linux-rpi4.preset/etc\/mkinitcpio.d\/linux-rpi4.preset\netc\/udev\/rules.d\/99-vcio-rewrite.rules/' /var/lib/pacman/local/linux-rpi4-*/files
Edit: Better to find the file and be explicit, but you get the idea.