One of the criticisms against Steem that I've heard from people that I've talked about Steem to is the fact that all transactions on the blockchain are public and immutable. I remember one potential Steemian from Lahti refusing to join because he didn't like the fact that every post he'd write or every comment he'd make would be readable by the whole world for as long as the blockchain exists.
There is no built in mechanism in the Steem blockchain to make posts private. But that doesn't mean a system like that could not be built on top of it. Some apps such as Musing already obfuscate things somewhat by directing all questions and answers by its users as replies to a placeholder post by . The questions and answers are in plain language, of course, because they are meant to be public. But there is no reason why an app could not use encrypted memos to deliver the content of the posts and create placeholder posts for the purposes of gaining access to the reward pool.
That would still leave rewards very much a matter of public record. But even that could be worked around by creating front ends that managed the creation of accounts to receive upvotes and the creation of SP holding accounts existing for the purpose of giving upvotes to hide exactly who is getting how much in rewards and from whom. There could be p2p communication between front ends to take care of the details automatically on behalf of the user. Or bots could take care of that in a centralized manner like bid bots today.