So I tested this again with a friend and the end conclusion was that the vehicle seats are ranked:
- commander
- gunner
- driver
- first passenger to enter
- the other passenger
To give you an example:
Lets say you have an empty Gorgon IFV, and John enters the driver seat of it, he can switch between all seats in the vehicle. But if James enters the gunner seat of the same Gorgon, John will lose the options to switch seats, and those options will go to James. Why? because James's gunner seat has priority over the John's driver seat. If James switches to a passenger seat John gets the permissions and James won't be able to switch back to his gunner seat.
I don't know if this is a bug or intentional, but I would like to have the option to switch seat no matter what seat you're in. I've had a couple of incidents where a teammate had connection drop in the middle of firefight and I could not switch from a passenger seat to the gunner seat because of the commander seat or driver seat being occupied.