It's not required for you to give LinkedIn access to your contacts for them to know you're connected with someone else.
* Your friend may have given LinkedIn access to their contacts and now LinkedIn will start spamming you to connect with them.
* You have a friend-a and friend-b who both gave LinkedIn access to their contacts. You're in friend-a's contacts but not in friend-b's. LinkedIn can assume there's higher than random chance that you know friend-b. LinkedIn will probably try to spam both of you to connect with one another. Why not, right?
* You have a friend-a and friend-b and friend-c who all gave LinkedIn access to their contacts and you're on all 3 but none of them are in each others. LinkedIn will probably try and spam all 4 of you to add each other.
There's prolly plenty more and a team at LinkedIn focusing on just this. Anyone else care to add clever ways to infer connections?