Uploading and downloading entire images is a severe waste of space and bandwidth. People aren't going to want to dedicate a 2 GB card just to run one application. The current OS images are upwards of hundreds of MBs each compressed, a plethora of application-specific variants would take up a lot of server space with bits that are mostly redundant, and they would require lengthy downloads for those with less than tens of Mb/s network connections.
apt is a more efficient way to do this where there are dependencies on other components not part of a Foundation OS variant, but, it requires a familiarity with package management on the part of the application builder. That would be an excellent skill for everyone to learn, but, it's well above the Hello World level.
It seems that it would depend on how your application (or collection, in the case where there are lots of interoperating executable files and component libraries) is implemented, and that's defined by what language and libraries are used to build and execute it. Given the limited RAM and ARM CPU power in the Pi, it may be time to think about distributed services, where the resources of much more powerful computing systems are leveraged.
This is how similarly resource-limited mobile devices (e.g., iOS, Android, etc.) are able to accomplish so much with so little. The days of linking to endless dependent hierarchies of libraries that often contain a lot more functionality than is really needed in any particular application are numbered. This is an area that I am exploring extensively in the Pi-finity! science, math, and technology educational game system that a number of developers want to create.
The best things in life aren't things ... but, a Pi comes pretty darned close!
"Education is not the filling of a pail, but the lighting of a fire." -- W.B. Yeats
In theory, theory & practice are the same - in practice, they aren't!!!