I don't think pubs are evil or should go away necessarily. However, their role/usage can change.
I would like to identify some good properties of the current SSB pub system. The main thing is the way they enable decentralization.
Decentralized server discovery
Without pubs, how will you connect to peers over the Internet? If you use a DHT, or overlay network, you still have to make initial connections to some servers. If those server addresses are hard-coded, you have centralization. With pubs, you discover their addresses in the feeds that you replicate. As a pub operator you can publish your pub address on SSB and peers will connect to it. Additionally, with pub invites, users automatically publish addresses of pubs they connect to, which further propogates pub addresses, enabling peers to discover a pub address when replicating the feed of a user who used an invite code to that pub, not actually having to replicate the pub's feed.
This decentralization aspect can be applied to other uses. For example, say you don't want to use pubs, and want peers to connect using WebRTC instead. The usual way is to have peers connect to a signalling server and maybe STUN or TURN servers. What server addresses will you use? Let peers discover them in their SSB log. Then people operating signalling servers or STUN/TURN servers can publish addresses for them, and peers can discover them, and maybe their app can give them an option of which to use.
Secondary positive aspects of pubs
Servers have identities in the network. They are not just in the background and unnoticible (until you can't connect to them), they have a feed just like users do. They have a presence in the social space. They can be mentioned, described, followed or blocked. You can see their position in the social graph and their history of activity. I consider this to be part of what is sometimes called how SSB is "honest" [%VTbtugC...]: servers exist and have identities, and we make that visible.
Pubs are peers (not to be confused with %kfd7QID...). At the connection level, while pubs function as intermediaries between peers, they are using the same protocol as the peers (aside from that non-pubs initiate connections to pubs, not the other way around). Because of SSB's P2P/E2E design, a pub's position in the network graph does not imply much or any authority over peers. I think this is why we've been able to get away for so long with not having direct p2p connections between peers: the gossip protocols work.
Summary
I think pubs are a good idea because they give identity to servers. However, if you want to do without pubs (as an implementer), I would still recommend following their example in the way of address discovery via SSB messages, if you want a decentralized/p2p network. For launching new protocols/networks, I would in fact still recommend to use pubs: publish their server addresses and capabilities in their feeds, so to accomplish decentralized server/service discovery and integrate with the social-network identity of the pub.
related: %t7iX0hA...