Yeah, I don’t like mixing shader code with frontend image handling because RetroArch isn’t the only program that uses libretro’s shaders. I know Snes9x standalone and IIRC OpenEmu can load our shaders, which is awesome, but if we add a bunch of RetroArch-specific stuff in there, users of those other programs will have a degraded experience.
Similarly, the MAME ‘lay’ format is really powerful and handles a lot of the scaling stuff and has hooks into the emulation core for dynamic things like number displays, which is super-cool, but supporting it in RetroArch was a pretty big hassle and will need to be repeated for each video/context driver (I’m sure much of the code can be abstracted and reused, but not all of it, certainly), and any of the features that hook into the core were just stubbed out, leading to artwork that looks incomplete or worse in RA. I wouldn’t want to inflict this situation on every program that wants to load our shaders.