Fair point - hadn't thought of that. I suppose it allows you to offload any sort of image processing/generation to the client - albeit at the cost of having to re-run it on every refresh? Might be painful for mobile users with slow js processing though!
Well refreshing is becoming a rarer event with all this asynchronous loading, so that's less of a problem.
Though it would be good if browser caches allowed manual insert/retrieval using JS - easier than faffing with cache control headers!
Slow JS processing for mobile devices could be an issue, but with 800MHz CPUs just around the corner, it shouldn't be much of an issue for long?
You sort of could make a gradient- use SVG for Firefox and Safari, and a CSS filter for IE. The IE part isn't valid, but then this method doesn't work it in it at all...