http://developer.android.com/guide/topics/manifest/service-element.html#proc
What are the differences?
If the name assigned to this attribute begins with a colon (‘:’), a new process, private to the application, is created when it’s needed and the service runs in that process. If the process name begins with a lowercase character, the service will run in a global process of that name, provided that it has permission to do so. This allows components in different applications to share a process, reducing resource usage.
I’ve checked and I can bind to Service no matter it is private or global, no matter if I do it within the same app or second one. (different UIDs)
I’m not sure what you mean by private process, but normally the service runs in the default process of you application or a dedicated one (set by android:process for the service component in your manifest). Clients that have a different user Id can bind to or start your service if the service has explicitly set android:exported=true or if the service component has intent filters and not set exported to false.
http://developer.android.com/guide/topics/manifest/service-element.html#exported
Permissions set on the service tag can further restrict who can start and bind to your service.