One of the things I like (apart from the fact that $FILES[] and $SESSION[] are just plain easier to use) about $GET[], $POST[] etc., is that they provide a ready-made isolation ward for tainted data; I can inspect them thoroughly before I let them loose into my regular namespace. I can furthermore do this in generic library functions that don't need to know in advance what variables they're going to have to examine (by looping over the arrays they can determine what sort of request is being made - since sometimes the same script might have half a dozen different form requests (possibly concatenated) to process depending on context). Part of the idea is to make the data smart and structured in a form appropriate to the task, and then the code can get away with being straightforward and dumb (and fast). Using a flat pile of primitive variables and having to go through all sorts of contortions to get anything useful out of them is nowhere near as robust.
But of course, the question is one of coding for register_globals=on or =off, not whether or not $_GET['foo'] provides more semantics than $foo. I code for it being off; partly paranoia, partly the above convenience it provides, partly because register_globals is potentially going to be disabled permanently in the fairly near future and I'm too lazy to contemplate grovelling over scripts trying to figure out which variables came from where. And it saves on documentation.