Injected global services: private or public?

The title says it: should injected global services be private or public?

Is there a recommended preference? Is there a performance hit one way or the other?

Add your singleton services to your core module.