Peer to peer non-realtime video distribution has a pretty core fundamental flaw in that users are only seeding when they're watching. Users are likely to stop watching a video if it doesn't interest them, if something else comes up, or more importantly for this conversation, if there's a technical issue that prevents smooth playback.
When a user stops watching for whatever reason, they leave the swarm. If a client has been getting segments from a peer that is close to them, and that user completes watching the video and closes the browser window, that peer goes offline. The player client then needs to find another peer to pull segments from, and hope that the peer can deliver at the same speed. Because most of these player extensions are on top of HLS or DASH, you're not "buffering" in advance very far, so you're sensitive to this bump (this is tunable, and P2P clients generally buffer more segments than those delivered by CDNs exclusively). Whether you can't find a peer with the segments you need, or the peer can't deliver fast enough, or the algo stalls and doesn't fail back to CDN based delivery fast enough, you get a playback stall.
Playback stalls always add frustration, and they're often multiplicative. One stall, you assume there's an internet issue, and it'll be fine. Two stalls, you grow frustrated with the service. Three stalls, you close the window. And now there's another peer dropping out the swarm, causing more interruptions in playback for other users.
IMO, as the tech stands today, P2P video delivery doesn't work super well unless you're setting up a P2P CDN, or have some other mechanism that allows for a peer to more gracefully exit a swarm to avoid stalls and signal to clients to shift before an abrupt exit.