The problems are rooted in the philosophy of crypto, not in the code. So, the beauty of blockchain tech is irrelevant for btc. It is like selling a bad app by showing how great Android is.
1) Bitcoin does not provide controlled visibility, because it doesn't recognise the existence of governments. Now if you make changes to provide visibility to authorities, ALL privacy is gone. If you don't, then ALL visibility is gone.
2) Fees are rooted in the design. Whatever consensus you invent for a public blockchain, you can't escape rewarding the work of validating transactions. So zero fees are not possible.
Public blockchains sacrifice all good qualities of a business application for the sake of trust-less environment which is not even actually a problem to solve in many contexts. Also they make it extremely costly to run small amount of code or small storage. Who wants their business code to be validated by all arbitrary people in the world?
Most ICOs are sharing economy concepts similar to uber model. Lack of a responsible intermediary and costs will make these "innovations" to fail, if they ever have to touch real-world activities.
Bulk of the blockchain activity will move to business collaborations which might not even look like a blockchain. Crypto coins will be used in most business blockchains, but these coins will be value-less tokens and very specific to the business or institutional activity.
Bitcoin is really useless but it happens that most of the people choose cryptocurrency and bitcoins increase its value because of himself and it gain even more popularity for people to be attracted on its price in the market that keeps on increasing as the time goes by so why not invest and become wealthy in the future.