We sell some items which have incompatible shipping options, which could result in someone arriving at the checkout page with no available shipping options.
Right now we are using Amasty's wonderful Shipping Restrictions extension to detect these cases and defaulting to a $0 option labeled "send me a shipping quote." That's working for now, but I would love to prevent these conditions from occurring in the first place, maybe with a notice along these lines:
"This item cannot be shipped with some other items in your cart. Please check out first, or remove the following items from your cart: X"
Is there anything like that?
I wasn't able to find a module with those features at the https://marketplace.magento.com/ but you should continue searching (I guess).
Maybe, because the kind fo rule you want, you can create your own module to handle that condition.
We have an extension Promotion Message which, actually, has another idea of usage. However, according to your request, you can configure such messages based on the products which are currently in the shopping cart. With help of Magento 2 widgets you can create a widget on product page in the location you require. So have a look on it and you can play with the extension on demo.