Did somebody say Internet Explorer 6?
Now, being serious, I agree that the customers should be the ones to decide, BUT they must be conscious of the implications (lack of support, security issues, bugs that got fixed in a recent version, etc.).
In theory, the cloud could do this, too - if done right.
"The one that will run on your system" is not necessarily "the one you want", though. It's still not in your hands.
You'd need to handle it in either case.
With this change you can no longer be confident that app usage for legacy versions will always decrease. If your app suddenly becomes very popular (as most app developers are aiming for), you might have a substantial contingent of users who are on an old OS downloading an outdated version that you no longer support.
When software was distributed physically, the consumer always had the freedom to use any version of an application they liked. Want to run a lightweight version of Word because you don't need all the latest features, or maybe you just hate the new UI? No problem. Did you like some video game better before they "improved" it? Just get the old disk out and play it.
Some people will argue that software developers should be able to require that their customers always have the latest versions of their product. I personally believe that decision should be in the hands of the user.
I'd love to see Apple allow side-loading for consumers, at the very least. The best solution, in my opinion, would be to also allow users to access some kind of "advanced" menu that would let them choose whichever older version of an app they choose.