Look as far as i know the open project_open command should be present on the very first line of any assignment you are trying to make to the project.
Suppose in the first case when you are executing the first command it should not throw an error. The second tcl file however is an all new execution in the quartus shell it wont have any reference to the previous command executed.
The second command seeks to make assignments but the project is not visible to it. So i guess the 3rd style is required.
Now coming to your second case after you give the name for tcl file you have to provide the script arguement i dont thing the -project option will work, it might not throw a syntax error for that but it wont have any effects.
GOOD LUCK