Today the bitcoin client can work over Tor, but it can't connect to nodes which exist exclusively in the Tor cloud except manually. When using tor your node will just connect to regular internet nodes via tor.
This means, e.g. that while running bitcoin over tor can protect your privacy it doesn't help secure bitcoin against ddos and internet filtering attacks, because tor hidden nodes can't play much of a role.
To fix this bitcoin would need to know how to connect to onion addresses and how to share them with other nodes.
Fortunately this can be done without changing the bitcoin p2p protocol. Bitcoin already shares addresses in IPv6 form. Fortunately the onion address space is already 80 bits and there is already a widely used mapping of onion to IPv6 called onioncat: http://www.cypherpunk.at/onioncat/wiki/OnionCat
To support this bitcoin would need to know to pack and unpack onion hostnames to onioncat IPv6 addresses, and would need to know to only attempt to connect to them via the tor-socks-proxy. It would also be useful for it to know how to have a tor-proxy used only for onion while the rest of the connections use the public internet.
Is there any reason that this wouldn't be a good way of handling this?