This appears to be both a bug and working as designed.
As the documentation indicates, new tabs are added to the end. When you run the script from the OP, notice that the "Add" button always remains in the left most tab. It is just an illusion (and a redrawing bug) that the "Add" button is located in any of the other tabs. To prove it, click on any of the other tabs after clicking on the "Add" button. You'll find that the "Add" button is only in the left most tab.
The bug is where the labels are added. New labels are added to the beginning of the control instead of to the end. Since new labels are added to the beginning of the control and new tabs are added to the end of the control, all tabs labels are renamed.
The workaround is to replace all of the tab labels when adding a new tab. For example:
#NoEnv
#SingleInstance Force
tabs:=3
gui Add,Tab2,vTab -wrap,1|2|3
gui Tab,1
gui Add,Button, Default,Add
gui Add,Text,,This is text on Tab 1
gui Tab,2
gui Add,Text,,This is text on Tab 2
gui Tab,3
gui Add,Button,,This is Tab 3
gui Show
return
GUIClose:
ExitApp
ButtonAdd:
tabs++
;-- Rebuild list of tab names
ListOfTabNames:=""
Loop %tabs%
ListOfTabNames.="|" . A_Index
;-- Add new tab
GUIControl,,Tab,%ListOfTabNames%
gui Tab,%tabs%
gui Add,Text,,This is text on Tab %tabs%
returnThem be my thoughts...