I feel this was already raised in:
go-ipfs team is actively working on improving the situation and testing it internally:
- tag kbucket peers for better connection closing by whyrusleeping · Pull Request #95 · libp2p/go-libp2p-kad-dht · GitHub
- tag 'can-hop' peers to aid in connection closing logic by whyrusleeping · Pull Request #20 · libp2p/go-libp2p-circuit · GitHub
- GitHub - libp2p/go-libp2p-connmgr: a resource sentinel that keeps connection count under reasonable bounds
- https://github.com/ipfs/go-ipfs/pull/4288
Hopefully it will be addressed in next release.