Supporting timers and other externally-called subroutines inside functions was never intended. At the time it was discovered, I was tempted to disable it but decided to keep it because some people said they were using it.
Yes, thank you for keeping that, because I use it quite often

.
But my example was maybe not accurate pointing to the problem. Because the limitation in using Static Gui variables has it's effect on control labels as well. (Actually that was my inital script problem)
GuiControlVar()
Return
GuiControlVar()
{
Static guiRA
Static btnTest,chkTest ; when making btnTest & chkTest global, GuiControl in TestLabel works OK
guiRA= 1
Gui, %guiRA%:add, button, vbtnTest gTestLabel w250, Change buttontext && enable checkbox
Gui, %guiRA%:add, checkbox, vchkTest disabled w250, Checkbox
Gui, %guiRA%:show,
Return
TestLabel:
GuiControl,%guiRA%:, btnTest, Text on button is changed! ; this doesn't work
GuiControl,%guiRA%:enable, chkTest ; this doesn't work
MsgBox,Remark: GuiControl is in the Function label "%A_thisLabel%", and does not support Static Gui Variables.
Return
GuiClose:
ExitApp
Return
}
I'm not saying that you have to solve the probem, but I'm not sure the situation is that exceptional. Unless if 99.9% of the readers will never use Static Gui variables, which could be possible.
I agree with other users here, to make this information somewhere easy accessible. If there's e.g. a link to "exceptional limitations" in the manual, then it's up to the reader whether he/she wants to check it out.