Labels aren't strictly tied to flow nor data. They are names during pre-compilation given to line numbers to improve your code readability. Basically (no pun intended), the GOTO/GOSUB/RESTORE and other instructions that take labels, during pre-compilation labels get converted to line numbers.
Now after this step, all these instructions operate purely on line numbers, example:
01 @LOOP 02 PRINT "SCOOP" 03 GOTO @LOOPGets converted to:
01 PRINT "SCOOP" 02 GOTO 1Similarly:
01 RESTORE @DATA 02 @DATA 03 DATA 1,2 04 DATA 9999,10000Gets converted to:
01 RESTORE 2 02 DATA 1,2 03 DATA 9999,10000So RESTORE simply starts reading DATA from a point. That's consistent with the behaviour of the following program:
01 RESTORE @TEST 02 @TESTwhich errors.