When the JS method setCustomUrl() is called, the 'url' parameter to piwik.php is replaced by the custom URL. This 'url' parameter is the one parsed to detect campaign and newsletter referrals. Instead,
I'll have to think about this some more, but I want to record these thoughts before I leave and forget:
We can indeed have the known campaign parameters to the setCustomUrl() and then remove them at tracking time... These parameters are found in
Re newsletter/campaigns; it is common in WA tools and processes to consider that a newsletter is a campaign like a PPC, off site, on site campaigns can be. The use case you're citing is pretty rare, usually newsletters are clicked more than 30min after the last visit on the website.
I will also try to work on #1042 and with custom campaign variable names, this makes this task more risky.