This isn't how cash works, which is the real "money" in our system. At some point (even if on credit) cash is transferred for stuff. I don't want people to know which places I have a news subscription for. I don't want them to know who I donate to just from the blockchain. I have a choice to want them to know that. This is a practical problem because that means either I need to use shady services to hide these facts for normal purposes. That, or never use them except in a few cases where I don't care people know (but I also might regret that).
I think from a practical perspective, this makes bitcoin really hard to use. How do you make transactions that aren't easily traced to you by literally anyone? Answer: it's hard and possibly won't work completely.