Когда вы смотрите на грамматику чуть ниже, там написано:
path = [ abs_path | opaque_part ]
path_segments = segment *( "/" segment )
segment = *pchar *( ";" param )
param = *pchar
pchar = unreserved | escaped |
":" | "@" | "&" | "=" | "+" | "$" | ","
Сегмент состоит из pchar и param, а param сам по себе pchar.Когда мы продолжаем читать, нет абсолютно никакого «?»символ в компонентах символа pchar.Таким образом, параметры не могут иметь "?", И не может быть "?"в сегментах.
Так что я согласен с ответом Эдварда Томсона, который говорит, что "?"только ограничить сегмент запроса и не может использоваться внутри пути.