Having cores act differently was always considered okay, I think, since the idea was that they’re independent programs whose authors may have different ideas of how things work. I agree that some of the options are weird and confusing, though.
We had started moving the overscan cropping functionality out of the frontend and into the cores at one point because the single frontend option simply wasn’t sufficiently granular enough to cover the many different core behaviors. Our plan was to eventually nuke the frontend option altogether but that obviously hasn’t happened.
The frontend option was originally a leftover from SSNES being a libsnes (i.e., bsnes) frontend exclusively, as SNES doesn’t really need any granularity, just a dumb crop / don’t crop. I tried to reconcile the cropping on snes9x2010 with snes9x-git at one point, but I couldn’t even get it to pad out the extra pixels, so I gave up.
For Higan, byuu decided to run the program at the highest possible res (512x448[?]) all the time instead of running at the more common 256x224 by default and then resizing as required (IIRC, this is because SNES can do this mid-scanline, which PC software/APIs can’t keep up with). This fucks up shaders, so when maister worked on the re-port, he added the option to downsample it to the more common, shader-friendly res. This is indeed confusing, but the alternative is just to have a core that makes all shaders look like shit, which would likely be confusing, as well.
For beetle-saturn, I believe it has black pillarboxing of varying widths, so when it appears to just widen the image, I think it’s actually cropping off black, and then when it’s cropping and stretching, that’s overshooting the black and cutting off actual image.
I actually wish more cores had the first/last scanline option, as it lets you get perfect scaling on CRTs easily.
Personally, I don’t think a database is feasible for the same reason all these goofy options are here in the first place: people are super-picky about cropping and aspect, and nobody can agree on what’s “correct”.