Is there a size variant to target smaller iPhones in portrait (iPhone 7 and below)?
Width Compact covers all iPhones.
No, the concept of size classes is not as fine-grained as that. As you rightly say, compact width embraces all iPhones (except the Plus phones in landscape). If you want to do something based on what size iPhone this actually is, you'll have to look directly at the screen dimensions or other determinant, in code; Apple discourages this kind of behavior, but some apps do it.