1. В PATCH технически можно передавать больше 1 значения на изменение. Правильно ли это?
См Json patch
https://en.wikipedia.org/wiki/JSON_Patch
Вообще RFC не обязывает тебя использовать именно json patch, а потому и нельзя сказать, можно ли передать больше одного значения. Это всё на усмотрение разработчика.
2. Фактическое отличие между всеми тремя методами лишь в том
Различие только в том что они предназначены для разного и "разное" лучше черпать из спецификации HTTP.
https://www.ietf.org/rfc/rfc9110.html
POST:
https://www.ietf.org/rfc/rfc9110.html#name-post
кратко - можно использовать для всего что не GET.
В теле передаётся что угодно, в зависимости от назначения.
PUT:
https://www.ietf.org/rfc/rfc9110.html#name-put
кратко - полная перезапись ресурса (из-за этого этот метод идемпотентен)
В теле передаётся весь ресурс целиком.
PATCH: про него отдельный rfc
https://www.ietf.org/rfc/rfc5789.html
кратко - для частичной модификации ресурса (как конкретно будет производиться модификация - это уже детали реализации. Можно использовать уже упомянутый json patch, можно что попроще или просто другое, но из-за такой гибкости он является неидемпотентным).
В теле передаётся описание того, как нужно модифицировать ресурс.
PathVariable тут вообще никаким боком не стоит. Хочешь - добавляй, не хочешь - не добавляй.