There is nothing simpler than using c2sc and smcp. If they are unsupported or a different font is used by the reader you get a better result as fallback. What's difficult about that?
If the font is changed or c2sc and smcp aren't supported, the full caps will stay as full caps, whereas the smcp can be backed up with
font-variant-caps: small-caps; so you still get small caps if that is supported.
You've done it the best as is possible.