Как упоминает Дэмиен, RFC2616 определяет только общие методы. HTTP, как и XML, - это протокол, который можно расширить для поддержки других форматов.
Например, предположим, что я хотел реализовать специальный метод, называемый "Encrypt". Если бы HTTP-библиотека была перечислением, она бы не работала и, скорее всего, вызвала бы исключение. Конечно, клиент должен знать об этом особом типе запроса, поэтому большинство расширений выполняется с помощью заголовков, а не команд.
HTTP является расширяемым протоколом, но немногие на самом деле расширяют его.
Рассмотрим этот простой пример:
<form method="Foo" action="http://someurl"></form>
Поскольку «метод» - это просто текст, и пользователь может поместить туда что угодно, обработчик HTTP должен быть в состоянии справиться с этим, правильно?
EDIT:
Как выясняется, спецификация HTML 4 допускает, что только GET и POST являются допустимыми значениями, но HTTP выходит за рамки этого.