Vamos por partes, pra ficar mais claro o problema.
test.prg:7: warning W0003 Variable 'X' declared but not used in function '3:MAIN'
test.prg:7: warning W0032 Variable 'X' is assigned but not used in function '3:MAIN'
test.prg:8: warning W0032 Variable 'X' is assigned but not used in function '5:MAIN'
1118208 -> 430592 38.51% win32/pe test.exe
Então, com hb_Eol() não deu erro, mas era pra dar.
test.prg:6: warning W0032 Variable 'X' is assigned but not used in function '3:MAIN'
assim dá erro, ok, está certo dar erro.
E assim volta a não dar erro, mas era pra dar.
Talvez até eu tenha me expressado mal:
Um erro -w3 é sobre não usar variável
Outro erro -w3 é sobre atribuir valor e não usar a variável DEPOIS de atribuir valor
test.prg:10: warning W0032 Variable 'X' is assigned but not used in function '7:MAIN'
a mensagem é sempre referente à última linha, porque todas as linhas usaram o valor que vém sendo atribuído, mas o valor atribuído na última não foi usado depois.
Aqui é apenas curiosidade extra, não tem a ver com o problema
test.prg:8: warning W0033 Variable 'X' is never assigned in function '3:MAIN'
Nesse caso é o contrário, a variável foi usada, mas não foi colocado nenhum valor nela.