(1) If I'm just expanding included resource files (compressed images) into bitmaps for display, I write my own intelligent cache. Backed by a simple HashMap, I can even include in my cache keys the desired height and width and downsample intelligently and cache the downsampled version. Funny enough, when I presented this to my coworker, he had just done almost the exact same thing and we had never discussed it. In one case I needed to categorize my images to flush some and not others from the cache, so I just wrapped a bunch of instances of the same BitmapCache into a BitmapCacheManager class and it worked like a charm.
(2) To get around the fact that you can't just set the source path of an ImageView to a web url, you can use a custom class that wraps ImageView and just handles downloading the image on a background thread. I wrote a pretty complicated system that pumps the urls to a queue and broadcasts a notification when each download completes, but a single google search pointed me to an awesome apache licensed library that does exactly the same thing (and is admittedly cleaner than mine).
https://github.com/loopj/android-smart-image-view
It's totally doable. I never looked at it as a limitation of the framework - I actually saw it as an opportunity to do something more challenging than just drawing within the lines of the framework.