おそらく、DATA文について誤解されてるんじゃないかな~
DATA文は実行するものではなく、プログラムに書いてある時点で有効になるので、DATA文をIF~ENDIFの中に入れたり、DATA文をループの中に書いても、一つのDATAであることに変わりはないのですよー
例えば、
FOR I=1 TO 1000:DATA 1:NEXT
READ A
READ B
としても、DATAが1000回定義されるわけではなく、プログラムに書いてある1つのみが有効なので、READ Bのところでエラーになっちゃうんですね
RESTOREもなんですが、「次にREADするとき、指定した行からDATA文を探し始める」っていう命令なので、複数回実行しても、最後に実行したものだけが有効になりますっ