Swash variants is something that can be handle through OpenType
features. Although we still need the interface and the API to apply
them.
Even when that's done there are plenty of fonts out there that have
Swash variants, or Caption, Heading, Display, Bubble, Outline, and
whatever exotic variant that cannot be handle with OT features. Look
at Adobe Font Foolio for example. Some of its font families have
Caption, Display and Subhead variants. We need a way to handle those.
For example Adobe Jenson Pro has 4 variants for Regular. fc-list will give:
Adobe Jenson Pro,Adobe Jenson Pro Subh:style=Subhead,Regular
Adobe Jenson Pro:style=Regular
Adobe Jenson Pro,Adobe Jenson Pro Disp:style=Display,Regular
Adobe Jenson Pro,Adobe Jenson Pro Capt:style=Caption,Regular
These have different pairs of preferred names and legacy names, yet
are rendered as the same. Something can be fixed there.