It is *not* the size of the VM that matters. Besides, the mobile-phone VM's don't have "normal" GUI widgets like scrollable grids.
It is having to download *app-specific* programming code that is the problem. Mainly because:
1. Creates security problems when coders find ways around VM security.
2. Takes too long to download the app-specific code.
3. Enhances browser/client versioning issues because a "dynamic" language is more complex than a "static" one.
4. Allows business logic to go to the client, creating more security risks (similar, but not identical to #1 since one is harming the client and the other the biz). VM-destined code is relatively easily disectable. A server based solution does not normally allow one to see the biz logic code itself, including the compiled form.