It would be way more flexible and even easier to implement, since you don't have to revisit all your markup.
Yes, unfortunately we have to rely on a small client side javascript to detect your client's properties but the solution allows you to both upload and reference one and the same image and URL regardless of client and we'll scale, re-sample and even crop on the fly and cache the formatted image for future requests. We are trying to provide an experience as seamless as HTTP content negotiation.
Also, this solution can be built into a Javascript shim for older browsers, something header-based would be much harder to do as a shim.
Why? There's no difference on the server side, you would have multiple versions of the same file anyway. You're just exchanging the responsibility of getting the right file from the markup to responding with the right file on the server (which is way easier to keep consistent, IMO).
In an ideal world, it would be server side. But it would easily mean twice as much work to get there.