Actually it should work because in devices\device.c is the set_vga_bridge_bits() function. This function
scans all the devices for PCI_BASE_CLASS_DISPLAY and PCI_CLASS_DISPLAY_OTHER. So
I guess 00.02.00 or 00.03.00 should be assigned with the PCI_BRIDGE_CTL_VGA as it will be the
first found.
Setting up VGA for PCI: 07:00.0
Setting PCI_BRIDGE_CTL_VGA for bridge PCI: 03:04.0
Setting PCI_BRIDGE_CTL_VGA for bridge PCI: 02:00.0
Setting PCI_BRIDGE_CTL_VGA for bridge PCI: 00:03.0
Setting PCI_BRIDGE_CTL_VGA for bridge PCI_DOMAIN: 0000
Setting PCI_BRIDGE_CTL_VGA for bridge Root Device
Allocating resources...

00:03.0 is on the list, so it will be the one assigned.
 
Now in the PCIe init function, the code pointed by Myles would be correct. Actually the device with
PCI_BRIDGE_CTL_VGA set gets BCTRL.VGAEN flag set.

I think it should be ok, right?
I just looked in pci_device.c, and the code there sets the bits in pci_enable_resources() instead of init().  I'm not sure why that is, but you might want to follow that lead for consistency.

Thanks,
Myles