How to avoid leaking private data to apps without rooting my phone?
Simple answer is no.

Also, I'd like to point out that there's many, many reasons apps will ask for these sorts of permissions, and I can promise you, they're not all stealing your private information. For instance, the SMS permission is commonly used to detect conformation codes that an app may send you.

If you are installing calculator apps that require your call log, contacts and SMS, then just download another app.

People these days are getting far too scared over nothing.