Now that I think about it, access() may not be necessary for chown()/chmod().
In particular, I'm thinking of a bug that happened in Solaris cpio (or was it pax?) eons ago where a user had a privilege assigned that allowed that user to chown() files. But that user couldn't actually read the files. So doing a raw chown() with no access check was the right thing to do.
If Hadoop were to mature enough to have a role system, doing access() followed by chown()/chmod() would be the wrong thing to do.
So, yes, I think it is ok to do chown()/chmod() without access() and just let the EPERM error or whatever Hadoop is throwing back to the user.
Of course, this begs the question about what FUSE will do under roles, but that's a different discussion for a different day.