You can modify any font with small caps to use those small caps as the primary glyphs. This appears to work perfectly as long as the relevant substitution tables are also updated to refer to the small cap glyphs. I'm sure you could apply the same technique to use the uppercase glyphs.
I've attached a cheesy script which performs the necessary modifications on the XML font representation used by the
TTX tool. It assumes that small caps glyphs end in ".sc" -- it would be better to use the contents of the 'smcp' substitution tables. It would also be better to use the fonttools Python library directly, but this is what I had lying around :-).