Query string wouldn't always work, because the site may already use the query argument for something else; some sites may break or freak out when given unexpected arguments.
URL fragments aren't transmitted to the server, so that means you lose referrer analysis for static sites.
URL fragments aren't transmitted to the server, so that means you lose referrer analysis for static sites.