Why Doesn't OSLC Fully Comply with Roy Fielding's HTTP Semantics?

While OSLC does not directly implements the semantics you suggest under 1 and 4, it does not hinder it either.

  1. There is nothing in the standard that hinders you from specifying GET /foo as the query endpoint.
  2. There is nothing in the standard that hinders you from specifying POST /foo as the creation endpoint.

Interesting enough, only until recently LyoDesigner defaulted to exactly your suggestion when generating server code. But then recently moved away from that. Why? It was more flexible to detach the URIs of resources, from the services of the server.

Concerning 5, It’s not a likely scenario that the client calling for the creation of a resource can dictate the id of the resource. This should be really left to the server to decide.

Finally, remember that OSLC promotes the use of Service discovery to find your endpoints, as opposed to make any assumptions on the URLs.