The problem with both the iPhone and Android ecosystem is the lack of proper versioning and upgrades.
As it stands now, if you release a paid app, you get 1 payment per user (often $1-$5). What I believe Apple and Google have overlooked is the recurring development and deployment costs associated with maintaining an application.
If you sell 10,000 downloads of your $1 app, you've now made ~$6,600 ($10,000 - ~1/3 paid to app store); that's hardly enough to realistically cover development costs. Also, if your application utilizes a remote server, that $6,600 will get eaten up pretty quickly in server maintenance.
Furthermore, as developers, we know that development doesn't stop at deployment; there are going to be upgrades, enhancements, bugfixes, etc down the road that you won't be able to re-capitalize on from previous purchasers. No matter how much more work you do, you'll never see another dime from someone who has already purchased your application (unless your application can be supported my an in-app purchase model)
I feel both these ecosystems make it difficult to provide a long-term career at this point in time. Perhaps in the future the markets will allow developers the option to charge for updates to their applications, just like we've been doing for decades on every other platform.
All of this is of course barring ad-sponsored applications which I personally find distasteful in that they utilize the network unnecessarily and drain mobile batteries prematurely.