I think the direct modification of the globals is to ensure that environment variables are all available where needed. I'm not entirely clear about what you are trying to do but I'd be cautious of a few things:
1) $_REQUEST doesn't contain some CLI elements necessary for spark commands
2) Runtime modifications of $_GET and $_POST don't retroactively apply to $_SERVER (e.g. $_POST['test'] = 'yes'; isset($_REQUEST['test']) //false)
3) It's possible to have duplicate keys, which I think are handled by overwrite in variable order (e.g. posting a form with 'name' field to myserver.com/route?name=me )