Is it okay to exclude/constrain attributes like s:id, s:metadata, and s:linkMetadata?

Yes, it is OK to exclude any NIEM content in a subset schema (including the metadata attributes in the structure namespace) as long as something else in the subset or the extensions does not depend on it.  It appears that the NIEM Schema Subset Generation tool includes these attributes in the subset, so one will have to manually edit the structures.xsd file to remove them as attributes of s:ComplexObjectType. Also, when associations or roles are used or needed, the s:id and s:ref must be part of the schema.

Before:
  <xsd:complexType name="ComplexObjectType" abstract="true">
    <xsd:annotation>
      <xsd:documentation>The ComplexObjectType type provides a base class
      for object definition, association definitions, and external adapter
      type definitions. An instance of one of these types may have an ID.
      It may have metadata as it establishes the existence of an object
      (maybe a conceptual object). It may also have link metadata, as an
      element of one of these types establishes a relationship between its
      value and its context.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute ref="s:id"/>
    <xsd:attribute ref="s:metadata"/>
    <xsd:attribute ref="s:linkMetadata"/>
  </xsd:complexType>

After:
  <xsd:complexType name="ComplexObjectType" abstract="true">
    <xsd:annotation>
      <xsd:documentation>The ComplexObjectType type provides a base class
      for object definition, association definitions, and external adapter
      type definitions. An instance of one of these types may have an ID.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute ref="s:id"/>
  </xsd:complexType>