Because the only way to get smallcaps is with some kind of tag, and there's no tag that defaults to smallcaps, so you need a class. (Or do something stupid like <em>A.M.</em>, and set
all <em> to smallcaps, or put a class to every other <em>).
If you ask why "A.M." is
smallcaps and "U.S." is just caps, I guess it has to do with the fact that "United States" is written with caps, and "ante meridiem" is not, and also with custom, since "e.g." is not written with any kind of caps (I think it's also common to write "a.m."). Personally, I prefer 24h format
ETA: See also
https://en.wikipedia.org/wiki/12-hour_clock#Typography