Ad. # 4: Я обычно рассматриваю строки запроса как несущественные. Если что-то не так со строкой запроса, я бы просто представил голую страницу ресурса (как будто не было запроса), возможно, с некоторой информацией для пользователя, что было не так со строкой запроса.
Это приводит к проблеме, аналогичной вашей # 3: как пользователь попал в этот неправильный запрос? Произошло ли в моем приложении неправильный URL-адрес? Или это была устаревшая ссылка в каком-то внешнем сервисе или сохраненная закладка? HTTP_REFERER
может содержать некоторую подсказку, но, конечно, не является авторитетным, поэтому я регистрирую проблемный запрос (с некоторыми дополнительными заголовками HTTP) и пытаюсь исследовать случай.