Is different checkout-flow per product possible?
You need to implement a checkout flow resolver.

Look at the default resolver for an example: https://github.com/drupalcommerce/commerce/blob/8.x-2.x/modules/checkout/src/Resolver/DefaultCheckoutFlowResolver.php
And don't forget the matching services.yml entry:
https://github.com/drupalcommerce/commerce/blob/8.x-2.x/modules/checkout/commerce_checkout.services.yml#L7
(You don't need to set the priority on yours though, it's -100 here so that DefaultCheckoutFlowResolver runs last)