Hitech explained why it is the way it is but I don't have a link. IIRC there is no standard sequence that fits all the different bomber gun configurations.
You could try to make an alternate table of the standard positions you'd like to see. For whatever reason there has never been an alternate system explained in detail, only the general idea has been expressed.
Yeah, been thinking about that..
The common theme I see with the gunner positions is that they all start with 2 and are assigned sequentially until the positions are filled. True, there are bombers that have unique positions while not having 'normal' ones, so if you stick to strict sequential assignment, then, yeah, they won't be able to line up with the others.
Now, I don't know how AH is written or in what language, but I'm pretty sure you're ultimately dealing with pointers.. and there is nothing that says keys can't use the same pointers.
So, if you do have a gap in the sequence, assign 'gap' keys to a different position to satisfy whatever table/hashing coding strategy you're using.
Here's what I've come up with.. and this is really a draft attempt..

This is making a few assumptions:
1. The secondary gunner of any bomber is referred to as the 'tail gunner'. So, for the sake of gunner positions, the position with the best coverage of the tail will be position 2.
2. The most common position of all bombers is the upper turret ( or ventral or whatever the Germans call it ) so we'll make that position 3.
3. For the sake of symantics, we won't call the lower position 'ball', since only 2 of the bombers actually have that position. Let's call them lower. We'll make that position 4.
4. Next in line is the nose.. we'll make that 5.
5. Then we have the waist guns. Let's make those 6 for left and 7 for right.
Let's look at the B25C Glass nose. It has 2 gunner positions. Upper turret and nose gunner. Since we've decided to make the upper turret position '3' and the nose position '5', we have to figure out what to do with positions 2 and 4, if we do have to stick to sequential table assignments. So, let's assign '2' and '4' to the upper turret also.. although, it may make more sense to assign '4' to the nose, since it would be the closest thing to a 'lower' position.
So if I get into a B25C and I want to jump to the tail gun, I'll hit '2'. But there is not true 'tail' gun in the 25C, so the program will treat the '2' as a '3' and put you in the upper turret.
Anyway, I'd thought I'd toss this out for consideration.
