@deadsea I still fail to see how this will cause problems because you suppose to have a single function that gets parameters and generates the final url.
>> extra tracking parameters
you mean internal links that somehow need to be generated and point to the same page? If these are internal links why not using cookies for this?
>>turning off particular teasers, or adjusting the color of a product.
transparent js or post methods could be used instead.
>> Url capitalization.
Who generates that? The URL generator should generate the same link always,
>> www.example.com vs example.com
application dependent you should always check $_SERVER['HTTP_HOST'] as someone may also enter using the domain's ip directly.
>> Merged data such as two product ids
Again use js, in general a non-URL mechanism.
>> Extra slashes in the url. Apache has a habit of serving the same page for /hello.html and //////hello.html
Application dependent, the URL generator should never append extra slashes.
>> default documents: /index.html vs /
application dependent somewhere you generate a link with the index.html instead of the plain /
If you are certain the application does not generate abnormal links then you're ok because you don't care what others are injecting or if external sites manipulate your site's links.
The only way to get dup content is if your domain somehow generates or recreates the duplicated links or if it's prone to URL poisoning.