When you enable versioning on a document library and want to use client object model upload method (in my case SaveBinaryDirect), you will find that your new uploaded file is not available in the view straightaway.
It resides in List Settings --> Manage files which have no checked in version (under Permissions and Management section) and you have to take ownership manually.
If you want to check in the file automatically (along with filling out metadata) you would need to do extra steps:
NOTE: I found that with .docx extension, even though the SaveBinaryDirect increments the minor version (debugging), when calling OverwriteCheckIn it does not increment the file minor version. Not sure if this is a bug :)
You must also fill out all required fields before being able to check the file in.