When I try to think of some of the nicest APIs I have actually used, I don't recall them being 100% REST compliant.
I am still not sold on putting versioning in the headers. Url based versioning has the benefit that the version being used is readily apparent (visible), as well as easing scalability due to the ability of frontend proxies to route based on url partials. The pragmatist in me says url versions are 'ok'. Maybe not the best, but as a trade-off "good enough" if it makes implementing them easier.
[1]: http://nordsc.com/ext/classification_of_http_based_apis.html