I agree with Calvin. Perhaps we are giving too much emphasis on using m dot with variable. I agree that the command -- lnCounter = m.X will definintely not refer to the field X from the current table and lnCounter = X may use value from the field X. But what will happen if there are multiple tables having field 'X' open . Do we know field from which table will be used? (Depends on which one is selected).
Consider the code
USE FIRST in 0
USE SECOND IN 0
GO TOP
REPLACE CODE WTIH '123'
Will it replace the Code field in the FIRST table or SECOND or in someother table? Isn't there is a strong case for using table prefix (e.g. REPLACE FIRST.CODE) in commands?