Yeah, I know Bloom filtering isn't perfect. For the case where you have a trusted peer it's also not adding much (doesn't lose you anything though). But the question was what's the protocol that all node implementations speak, which wallets can plug into, and that's the closest thing we've got.
If you look at Electrum/b.i/Mycelium/etc then the main feature they add on top of that is the ability to query a full block chain index rather than scan it. This results in faster query response times, but at the cost of maintaining a huge database on the server side. It'd be simple to add a similar optional feature to the P2P protocol for this (actually Amir has a draft BIP somewhere for such a protocol extension), if people wanted it. Then I think the P2P protocol would have all the features needed for every kind of wallet to talk to every kind of node.
Oh, just a few comments though:
* One of the most notable is a lack of scalability. BIP37 bloom filters have O(n^2) scaling. That means you can't reasonably support a large number of wallets with bloom filtering.
* They open the full node up to DoS attacks by intentionally forcing massive IO through requesting older information that must be read from the disk all at almost no cost to the attacker.
They don't "open up" nodes to DoS attacks because there's already a million ways to DoS bitcoind without BIP 37. It doesn't have any kind of resource scheduling framework yet, so don't worry about one issue specifically out of dozens - you should worry about DoS in general
With respect to scaling, what are you referring to here? What is "n" in that notation?
* Reduced privacy in a few ways. It is possible to correlate connections from the same wallet if the same tweak is used ... changing the tweak allows correlation of multiple bloom filters
That's a bit circular isn't it. You can only correlate the filters if you already know they're related. So use the same tweak for the lifetime of a connection and pick a new one when you reconnect.
If you want to go do a better replacement for Bloom filtering, be my guest, it certainly isn't the last word in private information retrieval. It's a tricky problem though, especially when leaving the realm of the theoretical and into the practicalities of writing the code and getting it reviewed / deployed.