There isnt really a purpose, its actually a waste, but it depends on what you are doing with it. If your doing any kind of checking on it - which with user entered data you almost always will, you might be passing it into other functions, objects, and so forth, so to keep track of it (readability) it is often easier to assign it to a meaningful variable - espcially true on forms that are multi-submit. what context are you using it in?
It really depends on what you are using it for, the circumstance, etc. On the other hand, it depends on the programmer. In your example, I would definitely assign a short variable name to it because $descp is easier to read/understand than $_POST['description'].
It doesn't because they can't even see your source code. Just be careful when you code, make sure that people can access only what they are supposed to access.. Be mindful of your techniques and frequently check PHP.net for any possible vulnerability in your codes.
i do the same thing as Imozeb, its easier to do like, $desc = $_POST['description'];, then wherever i need that, put $desc rather than having to put in $_POST['description']; again each time