You should use the first method unless you are on one of the 10F series. The second method is obsolete and probably won't work on future chips. It is also better is you use the assigned names,
No it shouldn't - use the correct mnemonics as provided in the include file - don't manually insert the values yourself, as it makes the code unreadable and prone to errors.
You're already using 'xorwf' and 'GPIO', so why do you not want to use 'f'?.
You should use xorwf GPIO,w to store the result in the work register or xorwf GPIO,f to store it back in the file. Please don't use numbers, I don't know which is which.
Nick, if you are using the 16F648, you do not need to worry about GPIO. As Pommie said, that phrase is obsolete unless you are dealing with 10 or 12 series chips from Microsoft.
I know you want to learn in a hurry, but you need to do some more reading, then ask questions of that which you do not understand.