Fancy Phony Small-cap Scheming
This is just some musing brought on after having read https://blogs.gnome.org/mclasen/2021/11/09/pango-updates-3/ ... so it may or may not warrant evolving into a design.
The two main factors that faux smallcaps differ on versus "real" smallcaps are the stroke weight and the proportions.
So, when making faux smallcaps, if the font has variable axis, then bumping them up a step on weight+ and width+ ought to give a result that is (marginally) a better visual match for the surrounding text than palin-vainlla resize by itself is.
That's an overly-sunny scenario to find yourself in, though; even in variable, it's most likely you just have a weight axis. If you just have weight, incrementing that up would still likely be better than not.
More likely scenario, without a variable font, but in a font family, would be to fall back on doing the same thing via font replacement: stepping up one weight increment (or weight and width) within the family.
Although that assumes that the family looks consistent, but that's sort of inescapable.
The analytical alternative to just jumping up in increments might be to measure the stroke width of a single-stroke character like pipe/bar (or hyphen/minus if the vertical option isn't present) and scaling the weight of the shrunken cap so that it matches.
It's not clear to me that there's a defensible analytical alternative to jumping up on the width, but you could perhaps say "scale the faux-smallcap O so that its width is halfway between the unscaled lowercase-o and the unscaled cap-O".
Total predicted number of users who will notice any of this: probably zero.