It seems the most vulnerable thing now is how your client finds other nodes to connect to. Right now, I think, the irc channel is the way you find most nodes and if that server where shutdown there could be some short-term problems. It might be a good idea of having the client save a list of ip address for every node it ever sees and if it can connect to the irc channel, or any other central place, your client could start trying ips in that list.
We don't use IRC anymore— not by default, you can manually enable it but it's off because:
*It didn't work well, most nodes it gave you were not listening
*It was a point of substantial centralization (easily shut down; operators of a single obscure network IRC could manipulate it)
*It degraded node's privacy— it announced the IPs of the majority of nodes that were not listening and thus didn't need to be made so public.
*It was frequently confused for a Botnet and was blocked by major providers several times, and resulted in nasty "you're infected" notices sent to users on a few ISPs.
In addition to dnsseeds, Bitcoin nodes have always remembered past nodes they've learned about over the network (it used to remember _all_, but thats a DOS vulnerability— now it maintains a large but finite set in a specially randomized way that makes it attack resistant). You can also drop a textfile in the bitcoin data director "addr.txt" with a list of nodes to use, or provide nodes with the --addnode command line. There is also a hardcoded set of fallback addresses (which are updated every few releases) which it will use if all other means fail.
I don't consider this the biggest vulnerability.
It makes the protocol more complicated but it is possible to design p2p systems which use random ports and encrypt the payload.
Bittorrent does this and it has been futile to curb (Bittorrent now account for about 50% of internet bandwidth).
peer detection becomes more difficult and anytime you add overhead like that troubleshooting everything else becomes more complicated. Still if push comes to shove it wouldn't be impossible to make Bitcoin traffic undetectable.
Bittorrent is nowhere near 50% of internet Bandwidth anymore (Figures range from about 8%-18% and declining, depending on who you asked and what timespan their data covers). It's frequently shaped by a fair number of ISPs and there are a number companies that specialize in selling tools to manipulate bittorrent traffic. Bitcoin would be be even worse off: The network itself is highly public and there is only one network... so you'd simply start one Bitcoin node to enumerate all the other publicly available ones. These attacks can be resisted— see the tor bridges arms race for an example— but it's better to let the experts in that area handle that for us and take advantage of our common needs. Bitcoin is very tor compatible, its a good mix.
Sure you could embed Bitcoin stenography— but you'd lose the additional privacy and effort sharing that comes from sharing with groups like Tor who already work hard to get around censorship.