Yeah...parsing addresses is non-trivial. It quickly turns into a probabilistic/NLP problem, if you want to deal with any sort of real-life input. I can believe that Wolfram Alpha hasn't put a lot of effort into it.
The DB lookup part of the problem (the part that Geocoder::US solves) is the straightforward, mechanical part -- but geocoder precision/recall is almost entirely determined by the quality of the parsing. That's a lot harder to do well.