Subclassing content type forms
Or would you rather make one type with all possible fields merged onto
  one form, then tweak the suggestion template so that irrelevant parts
  are /shown/hidden upon changing a dropdown menu that specifies the
  subclass?


If you're going the single-type route, here are two tips: Drupal Forms API supports conditions, check the docs; it might be useful to take a look at the Prepopulate module.