This is something I'm struggling with a bit actually.
I created a custom peer to peer networking library for an old game from the 90s. It uses an ICE (webRTC) library with a signaling server to establish peer to peer connections. I looked into libp2p but I can't wrap my head around how a DHT would be better than my simple signaling / lobby server. Yes, you'd have lots of potential relay servers around, but I already use a TURN server provoder for my current solution that has global relays for pennies per month. And Kademlia/DHT doesn't remove the need for a primary server somewhere because every new client needs an initial peer to connect - so I have to provide a static peer anyway. Not sure how this is any different than a server.
Anyway - I really like libp2p and want to explore the option, but that's my experience with an alternative p2p option.