На самом деле все предельно просто.
URL является частным случаем URI, который в свою очередь расшифровывается как "Uniform Resource Identifier". То есть это в первую очередь идентификатор ресурса. По нему мы находим ресурс, обращаемся к ресурсу, отличаем его от других ресурсов.
Query же, это такая же часть URI, как и host или path, и так же принимает участие в идентификации ресурса.
В Body же как раз содержатся данные, отправляемые ресурсу на обработку. Потому в GET запросах и нет тела, так как запрашивая данные ты не отправляешь никаких данных на обработку, но тебе нужно четко идентифицировать тот ресурс, от которого ты хочешь эти данные получить. А идентифицируешь ты его при помощи url, в том числе query, если нужно.
PATCH /user или PUT /user/password значения не имеет, но обычно разработчикам день программировать новые эндпоинты, поэтому используют более общий PATCH /user.
Коллекция - это некое множество объектов, поэтому логично что множество описывается в множественном числе.
Можно ли использовать глаголы? Ну смотря о чем вы говорите, о HTTP или о REST. В HTTP вы можете использовать глаголы, прилагательные, местоимения, причастия, предлоги и вообще любой набор символов в любой последовательности. В то время как REST - это парадигма работы с представлениями объектов. А объект глаголом быть не может.