Let me provide some useful examples why a url class is important.
1) If you like to do url rewriting, instead of
http://www.yourstore.com/index.php?rout ... uct_id=387
you can use the url class to transform it into
http://www.yourstore.com/index.php/prod ... ct/102/387 or
http://www.yourstore.com/index.php/winter/dress
2) A url class centralizes the route that needs to have https instead of going through a bunch of files to make modification.
3) Creating permission for each route is better control through a URL class. You don't want certain customer to access certain area, you can control the permission using the URL class instead of adding it in every page where the route exists.
4) With a URL class you can do a malform URL checking. For example, a malicious hacker can do
http://www.yourstore.com/index.php?rout ... id='select * from users' ... with a URL class, you can check if there's a single quote before you allow the execution of the URL.
5) URL class can help you transform misspelled or mistyped url into something reasonable. For example,
http://www.yourstore.com/index.php?route=product/roduct can be transform into
http://www.yourstore.com/index.php?rout ... ct/product or
http://www.yourstore.com/index.php/product/product
6) You can configure apache so that a path points to index.php so that,
http://www.yourstore.com/index.php/rout ... t&path=102 can simply be
http://www.yourstore.com/category/dresses
The advantage of a url class is very apparent as opencart moves forward in its development. For now, you can keep using HTTP_SERVER variable but eventually, I think for code manageability, it will change for the better.