The mechanism you found is the way on Intel NICs. On a dual port NIC, all even # pci functions for VF's are assigned to the 1st port and odd to the 2nd.
This may not be true on non-Intel NICs.
The SR-IOV specification leaves a great deal of details up to the implementers, this is an area where there is no standard way of doing it, thus no easier way to determine from the OS.
Have fun playing with SR-IOV.