Some client libraries (e.g. HttpURLConnection in JDK 1.7) don't support PATCH, e.g. see this stack trace:
java.net.ProtocolException: Invalid HTTP method: PATCH
at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:428)
To ensure maximum interoperability with clients (and not force clients to use PUT rather than PATCH), we should require OData services to support HTTP verb tunnelling.
See X-HTTP-Method in http://msdn.microsoft.com/en-us/library/dd541471.aspx