The part *is* an attachment, but when it's a text/calendar attachment it
would appear that mhshow defaults to displaying it.
The answer's in the mhshow(1) man page:
By default, mhshow will display only the text parts of a message that
are not marked as attachments. This behavior can be changed by the
-notextonly and -noinlineonly
Although technically I believe we shouldn't display those calendar
attachments even when they're text/calendar according to that man page,
but ... different problem.
The thinking for those defaults was that show/mhshow are for displaying
"text" content designed to be displayed on a terminal. Stuff under
"application" is generally supposed to be input to another application.
Hence the reason that text/calendar is under the "text" media type.
You can look at mhshow(1) for more details on how to change that.
--Ken