Yes, For Each Row() assumes the current data table. As such it can be ambiguous and can rely on a Current Data Table() call just before it.
A few releases ago we improved the syntax of For Each Row() and it now takes an argument in the first position to specify which data table to use. That's the best practice to ensure it's working on the data table you intend.
-Jeff