I think it "failed" because people expected it to be a replacement transport layer for the existing web, minus all of the problems the existing web had, and what they got was a radically different kind of web that would have to be built more or less from scratch.
I always figured it was a matter of the existing web getting bad enough, and then we'd see adoption improve. Maybe that time is near.
But you are right on the reason it "failed". People expected web++, with a "killer app", whatever that means. Imagination is dead.
Compared to the total number of users on the Internet relatively few have stable always-on machines ready to host P2P content. ISPs do not make it easy or at times possible to poke holes in firewalls to allow for easy hosting on residential connections. This necessitates hole punching which adds non-trivial delays on connections and overall poorer network performance.
It's less about imagination being dead but instead limitations of the modern Internet retards momentum of P2P anything.
Is there any reason this has to be true? Probably some majority or significant minority of mobile devices spend some eight hours a day attached to a charger in a place where they have the WiFi password, while the user is asleep. And you don't need 100% of devices to be hosts or routers, 10% at any given time would be more than sufficient.
Except it don't. Route and content takes hours to converge.
If a peer says "hey there's a new version of this" and that peer also has pinned that version, then I can get it from them right now, well before the network converges. Yeah maybe it'll take a few hours for the other side of the planet to get the word, but for most data a couple hours or a couple days is fine. Tolerating latencies was kind of the point of calling it "interplanetary".
What's the use case where I'm on the other side of the planet and I somehow end up with a CID which I can't resolve? How did I get that CID so much faster than content to which it refers?
The tricky part is the trust networking that incentivizes me to allow those others to do so.