Viragomann put me on the right track, though there was a catch. The original problem was that I wanted to perform CARP firewall rules synchronization between a master and a backup, but the backup had an extra interface (a wireless access point) the master didn't have. Consequently, the rules for the extra interface were been deleted whenever the rules synchronized. Viragomann suggested creating a dummy interface on the master for a non-existent VLAN, giving it the same name as the wireless interface on the backup firewall, and putting the rules there. The basic idea was good, but with a problem.
The problem comes in the way that the interfaces are named. When I created the dummy VLAN on the master, pfSense named it "OPT5". I then renamed it to "wireless" to match the interface name on the backup. It seems that renaming OPT5 to "wireless" is a cosmetic change only. Internally pfSense still calls it "OPT5", and all the rules are associated with "OPT5". When CARP performs the firewall synchronization, it copied all those wireless rules to the backup firewalls "OPT5", which was some other VLAN. On the backup, pfSense knows the wireless interface as "OPT4". I had to delete everything on the master firewall associated with OPT4 and above, and recreate them in the right order so that their internal "OPT" names aligned with the ones on the backup firewall. Once I did that, synchronization worked great.
Thanks, Viragomann, for putting me on the right path.