useless?
you already notice the big difference when you try to execute the above code without a
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Then the second line will return

but the fist line doesn't have this "issue".
"issue", let's sum up and try:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
myList1 = {:name,:sex,:age};
myList2 = Eval List({Name Expr(As column(:name)),Name Expr(As column(:sex)),Name Expr(As column(:age))});
dt2= Open( "$SAMPLE_DATA/Big Class Families.jmp" );
dt << Select Rows( [1] ) << Delete Rows;
Show(Eval List(myList1), Eval List(myList2));

Show(Type(myList1[1]), Type(myList2[1]))
provides more insight:

The simple list contains "Names", the complicated list contains "Columns".
When a name is evaluated, JMP follows a specific rule to determine what this name means:
https://www.jmp.com/support/help/en/19.0/#page/jmp/rules-for-resolving-names.shtml
If the name refers to a column, JMP will access the column in the current data table (dt2).
For a Column, JMP just has to go to THE data table ("dt") and access the column.
Very robust!