Well, also that, and it hasn't been implemented ...
What you are calling "SPV" is really a big pile of different optimisations. If you wanted to run bitcoind on a smartphone, for instance, it's insufficient to just only download a Bloom filtered block chain. You'd also have to reduce memory usage a lot, like by not storing all the block headers either. That would violate a bunch of assumptions in the code. You'd also have to optimise the amount of disk IO, because disk on phones is really slow. It's a fair amount of work.
If all you want is a desktop wallet with a Bitcoin-Qt like UI, but with SPV performance/security, you can check out MultiBit, and if that isn't your kettle of fish - why not work on a competitor? So far we have MultiBit, Hive, MacWallet and something for Ubuntu Touch called just "Bitcoin Touch", all of which are using bitcoinj. Most of those apps aren't even written in Java.
So we're developing quite a nice ecosystem there, and building the wallet app of your dreams has never been easier. It's all documented, there is lots of example code and so on. You can actually find a template for a wallet app in the bitcoinj git master branch that has a nice UI with slick animations, etc - it's a really tiny amount of code, even in Java which is kind of a verbose language. You can also use bitcoinj directly from Python, Ruby, Lisp (clojure) and a mixed paradigm functional language called Scala, all using their JVM implementations.
edit: I
elaborated on that theme here