@jamesbond sfs -> app-images -> full systems ... and to me the current form is vnc loading/unloading entire desktops or apps within those. Where each might be local (kvm/qemu vm set to serve out vnc, or a overlayfs mounted sfs, chroot into that and start vncserver (or have it set to auto run vncserver), or a cloud based system that serves via vnc).
My present messing-around boot is to (vesa/simpledrm) framebuffer, boots in a second. sym link fd64.sfs and overlayfs mount that, where its set to serve out vnc (vncserver) and that's about ready by the time wifi network connection has completed. fbvnc into that and ... a full X/gui desktop ready to go pretty quickly, all running (viewed) in a generic framebuffer.
I've extended that to then vncviewer into a hard wired box running x0vncserver. When the fps is dropped to 10 and color depth set to 16 bit, that's phenomenal whilst the look-n-feel is still good despite the low frame rate and reduced color depth. 720p full screen youtubes in chrome seeing max throughput of 5MB (40Mbs) rate, more often around 3MB/sec with a video playing, a lot lower for more idle screens. So my old/slow wifi connected laptop has the appearance of running at i5/nvidia hard wired ethernet speeds.
Where you can add (or remove) elements, by just adding in another vnc connection (to your phone/whatever) ... if a particular program is deemed best run/served from that. Whilst potential issues of layering of loads/unloads is pretty much irrelevant.
Distributed processing ... our i5/nvidia/hard wired does the youtube downloading/rendering .. comfortably, along with x0vncserver serving of vnc. Whilst the laptop has to handle vncviewing, along with running a overlayfs mounted Fatdog session that serves out vnc to fbvnc viewer. Yesterday I set that to start vncserver using spot rather than root, and that's working well, in effect X running as spot, along with anything else started within that.
PID USER COMMAND VSZ STAT
1 root init 4340 S
211 root battery-monitor 4340 S
222 root autologin 4340 S
227 root sh 4340 S
311 root wpa_supplicant 9596 S
336 root udhcpc 4340 S
341 root laptop 4340 S
342 root sfsload 4340 S
370 root .v 4340 S
382 spot vncstart 3964 S
391 spot Xvnc 127m S
398 spot jwm 165m S
410 spot xload 5260 S
411 spot fbvnc 4588 S
413 spot urxvt 15m S
414 spot sh 4228 S
415 spot o 7132 S
423 spot chrome 32g S
425 spot chrome_crashpad 32g S
428 spot chrome_crashpad 32g S
433 spot chrome 32g S
434 spot chrome 32g S
460 spot chrome 32g S
468 spot chrome 32g S
560 spot chrome 32g S
1470 spot dbus-launch 4116 S
1471 spot dbus-daemon 3952 S
1473 spot at-spi-bus-laun 295m S
1478 spot dconf-service 150m S
1482 spot dbus-daemon 3952 S
1498 spot at-spi2-registr 152m S
1853 spot chrome 1.1t S
2002 spot chrome 1.1t S
All cpu's and bandwidth involved are comfortable, low to modest. And at 5MB/sec peak type data rates that's within the realm of having a good desktop experience even if out-and-about, maybe just having to settle for watching youtubes at 420p on slower links.
Locally sfs load say Blender, or instead vnc connect to a x0vncserver/vgl based choice that runs Blender within windows/mac/linux/whatever, with the hard-work mostly being done by the remote system. And that you can attach/detach to/from, leave it to render for hours in the background.