In the SharePoint 2010 Client-Side Object Model, both
appear to do the same thing. Are there any differences, advantages of using one over the other?
What i believe, both are different one is for checkin documents and other is for publishing.
File.CheckIn - Allows to only check in the file
File.Publish - This will this will do a Major Checkin and submits for approval.