I don't think it's inconsistent to reject non-absolute urls.  Non-browser clients have perfectly valid reasons (i.e. laziness :)) not to send Origin headers, but there's never a reason to send a non-absolute Origin.  If we see an Origin header that's not absolute it may be a bug in our parsing of the url (e.g. there are some little-used url schemes that don't include "//"; we wouldn't want to automatically allow all of those urls)